2

現在、論文を執筆中です。この記事では、コードの最適化について説明します。この例では、JavaScript で 2 つの配列を区別します。ES5 フィルターとネストされた for ループの比較。

jsPerf.comを使用したテストは期待どおりに進みました。ES5 フィルターは、ネストされた for ループよりも 89 ~ 90% 遅くなります。performance.now()同様の結果は、(タイマーの開始、コードの実行、タイマーの停止、および所要時間の計算)を使用して見つけることができます。

これらはすべて、コードのベンチマークに最適です。本当にそうです。しかし、それらは学問的に正しくありません。最初のテストが完了した直後に、CPU を 100% 使用するベンチマークを実行するとどうなりますか? テスト 2 の結果は「無効」です。

2 つの JavaScript コードをベンチマークする最善の方法、正しい方法は何ですか?

4

1 に答える 1

0

私は答えを見つけました。Google Chrome のProfilerを使用して、関数の CPU 時間を取得できました。

プロファイラーは実際の時間ではなく CPU 時間を実際に使用するため、これを行うにはプロファイラーを使用するのが最善の方法のようです。テストの 1 つで CPU が 100% で実行されたとしても、結果に影響はありません。

于 2016-11-18T12:41:32.697 に答える