带有字符串参数的JMH-Benchmark方法

时间:2019-08-21 10:49:11

标签: jmh

我如何在JMH中对具有字符串参数的方法进行基准测试?

@Benchmark 
@BenchmarkMode(Mode.All)
@Warmup(iterations = 5, time = 1)
@Measurement(iterations = 2, time = 1)
public refType getOrAdd(String refTypeName)
{
   return nameClass.containsValue(refTypeName)
}

编译时,出现以下错误: 方法参数应该是@State类

1 个答案:

答案 0 :(得分:1)

考虑一下:JMH应该如何知道用什么值来调用@Benchmark方法?凡是调用该getOrAdd方法的人都应该向其提供数据,然后调用者应该是@Benchmark。或者,应该是JMH知道并自行初始化的东西,例如@State带有参数的类,如编译错误所示。

如果不看其余代码,很难看清要完成的工作。请查看如何创建MCVE。