具有字符串参数的 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

想一想:JMH 应该如何知道用什么值调用@Benchmark方法?无论该方法调用什么getOrAdd都应该为其提供数据,然后调用方应该是@Benchmark。或者,它应该是 JMH 知道并自行初始化的东西,例如@State带有参数的类,正如编译错误所暗示的那样。

如果不看到代码的其余部分,就很难看到您想要完成的任务。请查看如何创建 MCVE。

最新更新