開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. Javascript >
  4. console.time()でJavasciptの実行時間を計測
no-image

console.time()でJavasciptの実行時間を計測

需要があるかどうかはさておきJavascriptの実行時間を簡単に測る方法についてです。

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;
    };
}
TOPに戻る