Я создал класс. В этом классе у меня есть несколько методов, помеченных как @Benchmark
. У меня также есть основной метод, который запускает тесты JMH:
System.out.println("NUMBER OF THREADS: "+numOfThreads);
Options opt = new OptionsBuilder()
.include(JMHtopToBottom.class.getSimpleName())
.warmupIterations(5)
.measurementIterations(3)
.forks(numOfThreads)
.build();
Collection<RunResult> collection = new Runner(opt).run();
Мой интерес состоит в том, чтобы иметь:
метод установки, который запускает только один метод — сразу после
new Runner(opt).run();
и перед вызовом всех@Benchmark
методов (вместе с их повторениями).Кроме того, иметь метод tear down, который запускается только один раз сразу после запуска всех методов и до того, как мы вернемся к основному.
Когда я попробовал @setup
и @tear_down
(с Level
support: Trial
/Iteration
/Invocation
) методы запускаются несколько раз и не один раз, как хотелось бы. Есть ли способ в JMH аннотировать методы, чтобы он запускал только один - сразу после run()
и прямо перед окончанием run()
?