最近
またしても、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 という関数しか汚染していません。
他のライブラリといっしょに使っても大丈夫です。