-1

私は自分のプログラムのパフォーマンスを改善しようとしています。JMH を使用して 2 つのバージョンを比較しましたが、実際に違いがあるかどうかはわかりません。

私の結果の例:

                Version1(op/s)   score error(op/s)         Version2      score error

Benchmark 1   12382150,338           1277638,481        18855038,903    50835,395

Benchmark 2     11708047,2           4061755,193        18843828,659    41966,689

Benchmark 3      7814465,4           9483927,071        18821356,961    72364,651

Benchmark 4   10481146,451             464691,58        13936537,089    40726,506

Benchmark 5    6863734,072            175974,219         9709381,687    21774,816

これらの結果は、バージョン 1 とバージョン 2 の実際の違いを示していますか?

4

2 に答える 2

0

私の経験では、操作の規模を考慮して、それを判断する必要があります。長さがかなり単純で、結果を読みにくくする可能性のある方法のベンチマークを行っています。たとえば、ベンチマーク 1 の結果から導き出すと、次のようになります。

              Version1                  Version2
Benchmark 1   12382150 +-1277638 ops/s  18855038+-50835 ops/sec
same as       80+-7 ns/op                53+-1 ns/op

レポートは、「-bm avgt -tu ns」を使用して簡単に修正できます。これにより、ベンチマーク モードが平均時間に設定され、時間単位がナノ秒に設定されます。ベンチマークの規模は、改善がどれほど重要であるか、問題のベンチマークについてどれだけ懐疑的であるべきかを判断するのにも役立ちます。ベンチマークの分散が気になる場合は、十分な反復 (-i) とフォーク (-f) でベンチマークを実行することも確認する必要があります。また、静かなマシンでベンチマークを実行するようにしてください。また、ターボブースト、過熱、および電源管理ガバナーによって引き起こされる変動を回避するために、ベンチマークの期間中に CPU 周波数を設定できることを確認してください。

于 2015-08-04T09:53:51.623 に答える