誰でもこの質問を手伝ってもらえますか。単一のメソッドで簡単なベンチマークを作成します
public void timeIntArrayBlockingQueue(int reps) {
for (int i = 0; i < reps; i++) {
for (int j = 0; j < length; j++)
queue.add(data[j]);
Integer value;
while ((value = queue.poll()) != 101) {}
}
}
ArrayBlockingQueue の場合、結果を取得します。
0% Scenario{vm=java, trial=0, benchmark=IntArrayBlockingQueue, length=100} 5480.41 ns; σ=311.51 ns @ 10 trials
33% Scenario{vm=java, trial=0, benchmark=IntArrayBlockingQueue, length=1000} 56579.97 ns; σ=5530.23 ns @ 10 trials
67% Scenario{vm=java, trial=0, benchmark=IntArrayBlockingQueue, length=10000} 553782.25 ns; σ=27212.56 ns @ 10 trials
length us linear runtime
100 5.48 =
1000 56.58 ===
10000 553.78 ==============================
vm: java
trial: 0
benchmark: IntArrayBlockingQueue
この数字 (5480.41ns 56579.97ns 553782.25ns) が正確に意味するもの。
0% シナリオ メソッド timeIntArrayBlockingQueue は、パラメーターの長さ = 100 で 10 回呼び出されました。
(timeIntArrayBlockingQueue(100) - 10 時間 )
33% シナリオ メソッド timeIntArrayBlockingQueue は、パラメーターの長さ = 1000 で 10 回呼び出されました (timeIntArrayBlockingQueue(1000) - 10 time ) 。.
このベンチマークの結果をどのように解釈しますか?