у меня код
@Benchmark
public void baseline(Blackhole blackhole) {
Arrays.stream(nextData(rawSegmentStrs).toString().split("\\.")).forEach(s -> blackhole.consume(s));
}
выполняется вот так
Benchmark (version) Mode Cnt Score Error Units
DefaultSegmentSerdeBenchmark.baseline 2 thrpt 3 126.571 ± 144.077 ops/ms
это типа мне нужно выбрасывать комп, потому что на нём невозможно ничего мерить или я делаю что-то не так?
Очевидно, неплохо подкрутить окружение, чтобы минимизировать ошибку. Тактовую частоту зажать, хип зажать для предсказуемого gc, позакрывать лишние приложухи, етц
В стримах часто мультимодальные результаты наблюдаются. Рекомендую сделать с десяток форков в каждом по 10-20 итераций и посмотреть лог
спасибо за совет! В связи с тем, что у меня особо нет других тачек, вопрос: если я сделаю isolatecpu и потом буду запускать бенчмарк с numactl/taskset на то ядро, которое изолировал - это решит проблему? или там ещё 100500 различных нюансов? Про гц я даже с epsilon пробовал, но всё-равно было +-100%
просто сложно бенчмаркать и идею не закрывать, например. А это, наверное, самое жирное что есть
спасибо за совет!
началось отсюда
Обсуждают сегодня