众所周知,在JMH基准测试中使用循环并不是一个好主意,因为它将由JIT编译器进行优化,因此应该避免。是否有一种方法可以在不使用循环的情况下向我的JMH基准测试方法提供不同值的int
输入(输入列表)。
发布于 2015-03-13 08:02:27
看看JMH文档中的这个示例。您可以在字段上使用@Param
注释,以便告诉JMH注入该注释的值:
@Param({"1", "2"})
public int arg;
@Benchmark
public int doBenchmark() {
return doSomethingWith(arg);
}
然后,对1
和2
值运行基准测试。
注意,如果带注释的字段不是一个String
,而是一个原语,那么如何在赋值之前解析这些值,并以它们转换后的形式分配。如果您有多个带有@Param
注释的字段,JMH将使用字段值的任何可能排列来运行基准测试。
在定义JMH运行程序时,还可以重写值分配。
https://stackoverflow.com/questions/29012346
复制相似问题