我创建了一个类。在该类中,有几个方法被标记为@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方法被调用之前(以及它们的迭代)。当我尝试@setup和@tear_down (在Level支持下:Level)时,这些方法运行了几次,而不仅仅是我想要的方法。JMH中是否有一种对方法进行注释的方法,以便它只运行那些方法--就在run()之后,就在run()结束之前?
发布于 2016-02-28 18:38:13
你错过了几件事:
如果您绝对需要一些“Suite”级别的上下文,则必须使用VM构建它(例如,一些在基准测试设置上读取的文件/在teardown上更新等)。
https://stackoverflow.com/questions/35622625
复制相似问题