JavaScript ベンチマーク
2つの JavaScript 関数をウェブワーカーで並べて比較およびベンチマークします。
入力
出力
Readme
JavaScriptベンチマークとは
JavaScriptベンチマークは、コードの実行速度を測定するもので、一定期間にわたって繰り返し実行し、1秒あたりに完了できる操作数をカウントします。ベンチマーキングは通常、同じ問題に対する2つのアプローチを比較するために使用されます。例えば、特定のユースケースでArray.includes()がArray.indexOf()より高速かどうかを確認する場合などです。JavaScriptエンジン(V8、SpiderMonkey、JavaScriptCore)はそれぞれ独自の最適化とJITコンパイル戦略を持っているため、結果はブラウザとデバイス間で大きく異なる場合があります。
ツールの説明
このツールを使用すると、2つのJavaScriptコードスニペットを貼り付けて、ブラウザで直接パフォーマンス比較を実行できます。各スニペットは設定可能な期間でタイミングが測定され、結果には両方の関数の1秒あたりの操作数と操作あたりの平均時間が表示されます。プログレスバーは相対的なパフォーマンスの差を強調表示し、どのアプローチがより高速かを一目で確認できます。
機能
- 両方のスニペットをWeb Workerで実行するため、ベンチマークはブラウザタブをブロックまたはフリーズさせません
- ベンチマーク期間を設定可能で、精度と待機時間のバランスを取ることができます
- ビジュアルバーとパーセンテージの差を含む、並列表示されたops/sec比較
動作方法
各スニペットはループでラップされ、JITコンパイラがコードを最適化できるようにするための100msのウォームアップフェーズの後、指定された期間(デフォルト2秒)実行されます。操作はタイミングウィンドウ中にカウントされ、ops/secはcount / elapsed_ms * 1000として計算されます。ベンチマーク全体はWeb Worker内で実行されるため、DOMにアクセスできませんが、Math、Date、performance、配列、オブジェクトなどの標準JavaScriptグローバルにはアクセスできます。
ヒント
- スニペットは自己完結させ、イテレーション間で蓄積する副作用を避けてください
- より安定した結果を得るために、高速な操作では長い期間(3~5秒)を使用してください
- 結果は特定のブラウザとマシンを反映しています。常にターゲット環境でベンチマークを実行してください