3

コードのベンチマークのために OpenJDK JMH を調査しています。私の理解によると、JMH は、以前に収集された「プロファイル」からテストを防御するために、デフォルトで複数の JVM をフォークします。これは、このサンプル コードで非常によく説明されています。

ただし、私の質問は、次の 2 つのアプローチを使用して実行した場合、結果にどのような影響があるかということです。

1) 1 フォーク、100 回の反復 2) 10 フォーク、それぞれ 10 回の反復

そして、どのアプローチがより正確な結果をもたらすでしょうか?

4

2 に答える 2

4

場合によります。実行ごとの分散を推定するには、複数のフォークが必要です。 JMHSample_13_RunTo_Runを参照してください。したがって、単一のフォークは間違いなく悪いです。次に、10x100 の実行と 100x10 の実行のどちらが優れているかを尋ねると、これは、実行ごとの分散または実行中の分散のどちらが悪いかによって異なります。

于 2014-11-28T19:55:01.333 に答える