ベンチマークビルダー
オンラインで利用可能なJSベンチマークビルダー。インストール不要。JavaScriptコードの実行速度を比較
Benchmark Builder について
JavaScript の直接対決型マイクロベンチマークツールです。2 つの関数本体(スニペット A と B)を貼り付け、反復回数を設定すると、各スニペットを 100 回のウォームアップ呼び出しで実行したあと、設定された回数の計測用呼び出しを行い、合計時間、1 秒あたりの操作数、どちらのスニペットが何倍速いかを報告します。
使い方
1. 先頭カードで反復回数(既定値 10000)を設定します。 2. スニペット A カードで、任意のラベル(既定値 "A")とベンチマーク対象の関数本体(例: `return Math.random()`)を入力します。 3. スニペット B にも同様に入力します(例: `return crypto.getRandomValues(new Uint32Array(1))[0]`)。 4. 実行をクリックします。両方のスニペット本体が空でないまでボタンは無効です。 5. 結果カードを確認します。各スニペットはミリ秒単位の合計時間と 1 秒あたりの操作数を示し、下部行により速いスニペット名と速度比が表示されます。例外を投げた場合は、代わりに赤色でエラーが表示されます。
実行モデルとメトリクス
各スニペットは `new Function(code)` で包まれ、引数なしの関数として呼び出されるため、有効な関数本体である必要があります(作業には `return ...` を使います。最上位の文も許可されます)。 - ウォームアップ: 計測前に無条件で 100 回の呼び出しを行い、JS エンジンが最適化できるようにします。 - 計測: スニペットを `iterations` 回タイトループで実行する前後に `performance.now()` をサンプリングします。 - 1 秒あたりの操作数: `iterations / (timeMs / 1000)` で計算し、丸めます。 - 比: `max(timeA, timeB) / min(timeA, timeB)` で、小数点以下 2 桁で表示します。時間の小さい方が速いと報告されます。 これはベストエフォートのブラウザ内マイクロベンチマークであり、統計的に厳密なスイートではないことに注意してください。結果はマシンの負荷、ブラウザエンジン、GC の一時停止、デッドコード除去の影響を受けます。
▶実行をクリックするたびに結果が変わるのはなぜですか?
▶スニペットは変数、インポート、async/await にアクセスできますか?
▶スニペットが例外を投げた場合はどうなりますか?
▶データはサーバーに送信されますか?
このツールがあなたに役立ったなら、私にコーヒーをご馳走することをお勧めします。
私にコーヒーを買ってください。