我如何在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类
答案 0 :(得分:1)
考虑一下:JMH应该如何知道用什么值来调用@Benchmark
方法?凡是调用该getOrAdd
方法的人都应该向其提供数据,然后调用者应该是@Benchmark
。或者,应该是JMH知道并自行初始化的东西,例如@State
带有参数的类,如编译错误所示。
如果不看其余代码,很难看清要完成的工作。请查看如何创建MCVE。