众所周知,在JMH基准测试中使用循环并不是一个好主意,因为它将由JIT编译器进行优化,因此应该避免使用.有没有办法在int不使用循环的情况下为不同的输入值(输入列表)提供JMH基准测试方法.
Raf*_*ter 12
在JMH文档中查看此示例.您可以@Param在字段上使用注释,以告诉JMH注入此注释的值:
@Param({"1", "2"})
public int arg;
@Benchmark
public int doBenchmark() {
return doSomethingWith(arg);
}
Run Code Online (Sandbox Code Playgroud)
然后运行基准测试值1和2.
请注意,如果带注释的字段不是String原始字段,则在分配之前对值进行解析,并以转换后的形式进行分配.如果您有多个带@Param注释的字段,JMH将使用字段值的任何可能排列运行基准.
您还可以在定义JMH运行程序时覆盖值赋值.
| 归档时间: |
|
| 查看次数: |
4613 次 |
| 最近记录: |