実際にあなたが必要とする可能性のあるパラメータを推薦できるかどうかはわかりません。おそらくツールを書いた人さえいないでしょう。これは、テストしているユースケース、OS、JVMなどに非常に特化しています。
私個人的には、私は個人的には異なるパラメータで数回行い、その結果を分析して分析することができます。 エラー+/-(少なくとも平均時間)フィールドが最初に表示されます。それが大きすぎると(それはあなたが決定するものです)、私は通常@Warmup
と@Measurement
を増やします。それは黄金のルールではありませんが、これが私の行いです。ここで私が使用したサンプルは以下のとおりです。
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Warmup(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS)
@Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS)
@State(Scope.Thread)
私は以前の実行と一定の結果に近づくかどうかを確認するために少しによってiterations
とtime
少しが増加する可能性があります。
私は通常、すべてのベンチマークを同じウォームアップで実行します。その結果は、結果に偏っていません。
ここに来ることは、良い結果と悪い結果が得られるか、遅くて速いことです。しかし、これは出力だけです。理由はではありません。理由を理解してjmh
をperfasm
またはxperfasm
と他の多くのプロファイラで実行すると、私のリーグから完全に別のキッチンになります。