java-在JMH中正确地进行迭代次数和分叉次数之间的平衡

我正在探索OpenJDK JMH来对我的代码进行基准测试.根据我的理解,JMH默认情况下会派生多个JVM,以保护测试免受先前收集的“配置文件”的攻击.在sample code中对此进行了很好的解释.

但是我的问题是,如果我使用以下两种方法执行,将会对结果产生什么影响:

1)用1个fork,100次迭代
2)使用10个fork,每个迭代10次

哪种方法将给出更准确的结果?

解决方法:

这取决于.需要多个分叉来估计运行方差,请参阅JMHSample_13_RunTo_Run.因此,单个分叉肯定更糟.然后,如果您问哪个更好:10×100运行或100×10运行,这又取决于更糟糕的问题-运行间差异或运行内差异.

上一篇:Shell中Map用法


下一篇:Java12新特性 -- 微基准测试套件