0

2 つの正規表現ライブラリの実装でベンチマークを実行した後、以下の結果が得られました。

inputs   automaton      regex
 50      343ms          210ms
100      48ms           187ms
200      65ms           363ms
400      100ms          692ms
800      165ms         1385ms

最初の実行 (50 個の入力) が両方の実装で非常に高価なのはなぜですか?

参考: http://www.brics.dk/automatonautomationを参照し、「regex」は Java regex ライブラリを参照します。

4

2 に答える 2

2

これは、Java の標準的なマイクロベンチマークの問題によるものです。

JVM ウォームアップ: いくつかのパラメーターが原因で、コードは最初は遅くなることが多く、定常状態になるまで実行時間が長くなるにつれてますます速くなります。

クラスの読み込み: ベンチマークを初めて起動するときは、使用するすべてのクラスを読み込む必要があるため、実行時間が長くなります。

Just In Time Compiler : JVM がコードのホットな部分を識別したとき

ガベージ コレクター: ベンチマーク中にガベージ コレクションが発生する可能性があり、それにより時間が大幅に増加する可能性があります。

良い読み物です。

于 2013-05-24T01:43:03.727 に答える