我在我的项目中使用JMH基准测试。
我有一个用@Benchmark注释的方法1和方法2。
我希望顺序是:方法1,方法2,方法1,方法2...以此类推...
也就是说:我希望方法2紧随方法1之后。有没有办法做到这一点?
谢谢!
JMH执行@Benchmark
方法的顺序通常是无关紧要的:这些运行是相互隔离的,因此结果是独立的。但如果您仍然希望特定的顺序,则@Benchmark
将按字典顺序执行,因此,请按照该顺序重命名您的方法。
_0_january()
,_1_feburary()
,_2_march()
,... 太丑陋了! JMH 可能应该支持 @Benchmark(reportOrder = 2) String march() {}
。 - Geoffrey De Smet@Benchmark
方法按照它们在类文件中出现的顺序执行。我有两个用例:1. 我正在对代码进行分析,我想快速控制哪个方法先运行,这样我就可以对其进行分析。2. 这些方法是相关的。我希望以更符合读者直觉的顺序报告基准数。我更喜欢通过方法排序来控制,而不是注释,因为参数容易出错(例如,两个注释可能具有相同的参数值)。 - Gili