最近
またしても、JavaScript のベンチマークを取らなければならない仕事が来たので、
ツールをキレイにしました。
それを公開します。(ダウンロードは一番下にあります。)
使い方
script タグで benchmark.js を読み込んで、以下のように連想配列の関数群を渡すだけです。
benchmark({ 'ほげほげの計測': function() { ...... }, 'ふがふがの処理の計測': function() { ...... } });
結果は以下のように表示されます。
*** ほげほげの計測 *** result : 0.0011[ms] *** ふがふがの処理の計測 *** result : 0.111[ms]
表示された秒数は
関数の中身を一回だけ実行する時間です。
関数呼び出しのコストは差し引かれています。
注意点(これを守らないと正確なベンチマークを取れません)
1. 計測は、グローバル領域で行ってください。
関数定義箇所のスコープによって、関数の重さが変わるため。
ダメな例
function() { benchmark({ ... }); }
2. 軽すぎる関数を入れて計測しても、正確な値は出ません
誤差によって、マイナスの値が計測される可能性もあります。
benchmark({ '悪い例': function() { i++; }, '良い例': function() { i++;i++;i++;i++;i++;......(10000回くらい書く) } });
ちなみに
グローバルは benchmark という関数しか汚染していません。
他のライブラリといっしょに使っても大丈夫です。