プログラマーな日々

プログラマーをやっています。好きなものは、C#, TaskChute Cloud, WorkFlowy, Backlog, AWSです。

プロファイラを作成する

JavaScriptの簡易プロファイラです。(jQueryクックブックより)

ソースコード

<body><div id="log"></div></body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
<script type="text/javascript">
	(function ($) {
		var log = [], first, last;

		// 時間計測メソッド sinceが省略された場合は、前回呼び出し時との差分
		time = function (message, since) {
			var now = new Date().getTime();
			var seconds = (now - (since || last)) / 1000;
			log.push(seconds.toFixed(3) + ': ' + message + '<br />');
			last = new Date().getTime();
		};

		// 合計時間出力メソッド
		time.done = function (selector) {
			time('total', first);
			$(selector).html(log.join(''));
		};

		// 初期化
		last = new Date().getTime();
		first = last;
	})(jQuery);

	alert('sleepの代用');	time('first');
	alert('sleepの代用');	time('second');
	alert('sleepの代用');	time('third');
	time.done('#log')	// 11/03 余計なsleepが原因でtotalが間違っていたのを修正 
</script>

実行結果