web-dev-qa-db-ja.com

JS Consoleでconsole.timeEnd()から出力を取得する方法は?

Googleのconsole.timeEnd('t')から返される文字列を取得できるようにしたいと思いますChrome Javascript Console。

以下のこの例では、"t: 0.276ms"を含む1つの変数が必要です。

> console.time('t'); console.timeEnd('t');
  t: 0.276ms
< undefined

これは何か可能ですか?

40

GoogleでChrome 23.0.1262.2(公式ビルド155904)開発では、不可能に見えます。正確に時間を計算できることがわかった唯一の方法は、window.performance.webkitNow()

以下に簡単な例を示します。

var start = window.performance.now();
...
var end = window.performance.now();
var time = end - start;

詳細は http://updates.html5rocks.com/2012/08/When-milliseconds-are-not-enough-performance-now

34

単純に使用できます

var begin=Date.now();
something here ...;
var end= Date.now();

var timeSpent=(end-begin)/1000+"secs";

これは最も簡単な方法であり、クロムだけでなく任意のブラウザで動作します

11
nikoss

時間を測定する小さなヘルパー。 timerEndは、ミリ秒単位で時間を返します。また、timersオブジェクトには、この名前のタイマーが使用された回数、すべての測定時間の合計、測定の平均に関する情報が含まれます。操作の測定時間は多くの要因に依存するため、これは非常に便利です。したがって、数回測定して平均を確認するのが最善です。

var timers = {};
function timer(name) {
    timers[name + '_start'] = window.performance.now();
}

function timerEnd(name) {
    if (!timers[name + '_start']) return undefined;
    var time = window.performance.now() - timers[name + '_start'];
    var amount = timers[name + '_amount'] = timers[name + '_amount'] ? timers[name + '_amount'] + 1 : 1;
    var sum = timers[name + '_sum'] = timers[name + '_sum'] ? timers[name + '_sum'] + time : time;
    timers[name + '_avg'] = sum / amount;
    delete timers[name + '_start'];
    return time;
}
6
Felix