держать класс с измерениями, наверное в тестах ?
Под бенчмарки делают отдельный сурс сет
какие-то переменные, объекты классов хранить ? получается общедоступный set и для текущего потока надо поискать примеры )
Не, я про папку исходников. У тебя есть src/main/java, есть src/test/java, jmh плагин, по крайней мере для гредл, делает src/main/jmh
ааа, понял, спасибо, отдельно ... надо делать) То я сижу и думаю про @State
https://github.com/openjdk/jmh/blob/master/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_03_States.java
спасибо. Уже что-то пробую сделать по сложнее, там дофига примеров... правда не всё понятно )))
Придётся читать документацию, да.
нашёл пример и по нему клепаю... додумываю своё @State(Scope.Benchmark) public static class ...{ @Param({"..., ... , ...."}) List<Integer> list; @Setup(Level.Iteration) public void setup() { ....} } и это уже подставляется в @Benchmark
Сейчас вам компилятор расскажет, что List<Integer> в @Param нельзя. Читайте документацию.
щас запустил, всё ОК, то что надо... ну точнее надо дальше придумывать. То есть формируется некий список List<Integer> перед каждой итерацией, и прогоняется стопка измерений
ааа, то я не дописал здесь, там int total; идёт, и потом уже List. Я так понимаю, в зависимости от длительности итерации, он запускает Benchmark столько раз, сколько успеет запустить за этот промежуток ? как-то не сильно удобно, лучше запустить N- раз в разных итерациях(новый List)
https://github.com/openjdk/jmh/blob/master/jmh-core/src/main/java/org/openjdk/jmh/annotations/Mode.java#L35-L42
да, указал в нотации время... и как-то не нравится этот подход может надо batchSize использовать https://github.com/openjdk/jmh/blob/master/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_26_BatchSize.java
Обсуждают сегодня