java微基准测试JMH中具有不同值的循环 3 月,1 周 Questions & Answers 7271 众所周知,在JMH基准测试中使用循环不是一个好主意,因为它将由JIT编译器优化,因此应该避免。有没有一种方法可以在不使用循环的情况下为我的JMH基准测试方法提供不同的int输入值(输入列表)
# 1 楼答案 看看this example in the JMH documentation。可以在字段上使用@Param注释,以便告诉JMH注入此注释的值: @Param({"1", "2"}) public int arg; @Benchmark public int doBenchmark() { return doSomethingWith(arg); } 然后对值1和2运行基准测试 请注意,如果带注释的字段不是String,而是原语,那么这些值在赋值之前会被解析,并以转换后的形式赋值。如果有多个字段带有@Param注释,JMH将使用字段值的任何可能排列来运行基准测试 在定义JMH运行程序时,还可以重写值分配
# 1 楼答案
看看this example in the JMH documentation。可以在字段上使用
@Param
注释,以便告诉JMH注入此注释的值:然后对值
1
和2
运行基准测试请注意,如果带注释的字段不是
String
,而是原语,那么这些值在赋值之前会被解析,并以转换后的形式赋值。如果有多个字段带有@Param
注释,JMH将使用字段值的任何可能排列来运行基准测试在定义JMH运行程序时,还可以重写值分配