console.time()でJavasciptの実行時間を計測
需要があるかどうかはさておきJavascriptの実行時間を簡単に測る方法についてです。
Dateで日時を取得して差分を比較するコードを自分で書いてもいいんですが、
すでに使える機能があるなら頼りたいのが人情というもの。
そこで登場するのがconsole APIです。 ブラウザのJavascriptコンソールにいろいろな情報を書き出すデバッグの強い味方ですね。
console.logにはお世話になります。
引数に文字列のラベルを取り、cosole.time(label) 〜 console.timeEnd(label) の間の所要時間をJavascriptコンソールに出力してくれます。
ただし時間を全ブラウザで計測したい、という場合は追加でコードを書く必要があります。
たとえばIEは最新の10でもconsole.timeには対応していないようです。
下記のようにコードを書いておけばconsole.time()が未定義のブラウザでも使えるようになります。
Dateで日時を取得して差分を比較するコードを自分で書いてもいいんですが、
すでに使える機能があるなら頼りたいのが人情というもの。
そこで登場するのがconsole APIです。 ブラウザのJavascriptコンソールにいろいろな情報を書き出すデバッグの強い味方ですね。
console.logにはお世話になります。
console.time()とconsole.timeEnd()
それぞれタイマーのスタートとストップに相当します。引数に文字列のラベルを取り、cosole.time(label) 〜 console.timeEnd(label) の間の所要時間をJavascriptコンソールに出力してくれます。
console.time('test'); hoge(); console.timeEnd('test'); function hoge() { ... }
ただし時間を全ブラウザで計測したい、という場合は追加でコードを書く必要があります。
たとえばIEは最新の10でもconsole.timeには対応していないようです。
下記のようにコードを書いておけばconsole.time()が未定義のブラウザでも使えるようになります。
// console.time()とconsole.timeEnd()が未定義なら追加 if(window.console && typeof(window.console.time) == 'undefined') { console.time = function(name, reset){ if(!name) return; if(!console.timeCounters) console.timeCounters = {}; var key = 'key_' + name.toString(); if(!reset && console.timeCounters[key]) return; console.timeCounters[key] = new Date().getTime(); }; console.timeEnd = function(name){ var end_time = new Date().getTime(); if(!console.timeCounters) return; var key = 'key_' + name.toString(); var counter = console.timeCounters[key]; if(!counter) return; var time = end_time - counter; console.info(name + ': ' + time + 'ms'); delete console.timeCounters[key]; return time; }; }