ベンチマーク比較
無料でオンラインで利用可能 ベンチマーク比較 インストール不要のツール
ベンチマーク比較について
2つの JavaScript スニペットを設定可能な反復回数(1〜1,000,000 に制限)で並列実行し、それぞれの合計時間と1秒あたりの操作数を報告した上で、速度比とともに速い方を宣言します。計測の前に、共有 Setup ブロックが1回だけ実行されます。
使い方
1. 任意で上部カードに Setup コードを入力します(1回だけ実行、例:'let arr = new Array(1000).fill(0)')。 2. Code A と Code B を入力します。各々が関数の本体になるため、'arr.map(x => x + 1)' のように通常の文を書きます。 3. 反復回数(1〜1,000,000)を設定します。 4. 実行 をクリックします。まず min(n,100) 回の短いウォームアップが走り、その後に計測ループが実行されます。
結果の読み方
各コードブロックは合計時間(ms)と、n / (time/1000) で計算された1秒あたりの操作数を報告します。勝者カードは緑色でハイライトされ、要約行に速度比が表示されます(例:'A is 2.3x faster than B')。スニペットが例外を投げると、その結果にはエラー文字列が表示され、勝者は宣言されません。
▶これは正確な本番用ベンチマークですか?
いいえ。new Function と単純な for ループ、performance.now を使用しています。統計的なサンプリングはなく、100回のウォームアップ以上の JIT のウォームアップからの隔離もなく、ブラウザのオプティマイザが短いループの結果を大きく歪めることがあります。結果は厳密な測定ではなく、手軽な比較の目安として扱ってください。
▶スニペットはページの変数にアクセスできますか?
いいえ。各スニペットは new Function で包まれ、ページのクロージャではなく独自のスコープで実行されます。スニペットが必要とするものは Setup ブロックで宣言する必要があります(例:setup 関数の最上位で let/var を使う)。
▶Setup が例外を投げたらどうなりますか?
エラーはベンチマーク関数内で捕捉され、その時点で計測中だったスニペットの結果として返されます。実行 ボタンは Code A と Code B の両方に内容があるまで無効のままです。
▶非常に多い反復回数が 1,000,000 で上限に見えるのはなぜですか?
タブがフリーズするのを防ぐため、反復回数は Math.min/Math.max で 1〜1,000,000 の範囲にクランプされます。報告される1秒あたりの操作数は、実際に使用された n に基づいて計算されます。
このツールがあなたに役立ったなら、私にコーヒーをご馳走することをお勧めします。
私にコーヒーを買ってください。