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にアクセスできませんが、MathDateperformance、配列、オブジェクトなどの標準JavaScriptグローバルにはアクセスできます。

ヒント

  • スニペットは自己完結させ、イテレーション間で蓄積する副作用を避けてください
  • より安定した結果を得るために、高速な操作では長い期間(3~5秒)を使用してください
  • 結果は特定のブラウザとマシンを反映しています。常にターゲット環境でベンチマークを実行してください