関数の実行時間を得る
↑のエントリに関連して。JavaScriptだと Dateオブジェクトは数値として扱うことができ、その場合ミリ秒の数字になる。従って
var start = new Date(); testfunction(); var end = new Date(); var span = end-start; // start から end までのミリ秒を得る
というやり方で、testfunction() の実行時間をミリ秒で計ることができる。
function をゴニョゴニョして一般化できそうだなぁ…
追記
コメント欄でmalaさんが書いてくださったのをここに貼り付けておきますね
Function.prototype.bench = function(st){ var self = this; // 実行時間を計りたい関数 return function(){ var start = new Date().getTime(); var res = self.apply(this,arguments); var end = new Date().getTime(); window.status = st+":"+(end-start); // 結果をステータスバーに表示 return res; } }
使い方は
testfunction = testfunction.bench("実行時間は"); //設定 testfunction(go); // 実行
すると、実行時に window.status に "実行時間は:12" などと出ます。
windows.stat に表示してるけど、GreaseMonkeyならGM_logでJavaScriptコンソールに出してもいいし、専用のlog関数組んでそこに出力してもいい。