2006-09-06
ベンチマークツール公開
最近
またしても、JavaScript のベンチマークを取らなければならない仕事が来たので、
ツールをキレイにしました。
それを公開します。(ダウンロードは一番下にあります。)
使い方
script タグで benchmark.js を読み込んで、以下のように連想配列の関数群を渡すだけです。
benchmark({
'ほげほげの計測': function() {
......
},
'ふがふがの処理の計測': function() {
......
}
});
結果は以下のように表示されます。
*** ほげほげの計測 *** result : 0.0011[ms] *** ふがふがの処理の計測 *** result : 0.111[ms]
表示された秒数は
関数の中身を一回だけ実行する時間です。
関数呼び出しのコストは差し引かれています。
また、FireBug を使っている場合は
benchmark.at('firebug')({
......
});
とすることで、ログを FireBug のコンソールに表示できます。
注意点(これを守らないと正確なベンチマークを取れません)
1. 計測は、グローバル領域で行ってください。
ダメな例
function() {
benchmark({
...
});
}
2. 軽すぎる関数を入れて計測しても、正確な値は出ません
誤差によって、マイナスの値が計測される可能性もあります。
benchmark({
'悪い例': function() {
i++;
},
'良い例': function() {
i++;i++;i++;i++;i++;......(10000回くらい書く)
}
});
ちなみに
グローバルは benchmark という関数しか汚染していません。
他のライブラリといっしょに使っても大丈夫です。
ダウンロード
http://sample.ecmascript.jp/benchmark.js
デモ:Prototype.js の $ の速度を計測
トラックバック - http://d.hatena.ne.jp/amachang/20060906/1157571938
リンク元
- 222 http://b.hatena.ne.jp/
- 218 http://d.hatena.ne.jp/
- 185 http://b.hatena.ne.jp/hotentry
- 168 http://reader.livedoor.com/reader/
- 50 http://www.google.co.jp/ig?hl=ja
- 36 http://b.hatena.ne.jp/add?mode=confirm&title=IT%u6226%u8A18 - %u30D9%u30F3%u30C1%u30DE%u30FC%u30AF%u30C4%u30FC%u30EB%u516C%u958B&url=http://d.hatena.ne.jp/amachang/20060906/1157571938
- 35 http://del.icio.us/popular/
- 28 http://b.hatena.ne.jp/entrylist?sort=hot
- 18 http://b.hatena.ne.jp/hotentry?
- 16 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-30,GGLJ:ja&q=javascript+途中で終了
