如何从JS Console中的console.timeEnd()获取输出?

时间:2012-09-19 10:34:32

标签: javascript google-chrome google-chrome-devtools

我希望能够在我的Google Chrome Javascript控制台中获取从console.timeEnd('t')返回的字符串。

在下面的这个例子中,我想要一个包含"t: 0.276ms"

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

这是可行的吗?

4 个答案:

答案 0 :(得分:32)

在谷歌浏览器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

了解详情

答案 1 :(得分:11)

只需使用

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

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

这是最简单的方法,它适用于任何不仅仅是Chrome的浏览器

答案 2 :(得分:5)

小帮手做一些时间测量。 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;
}

答案 3 :(得分:-6)

console.timeEnd()函数将时间输入控制台,并返回值 所以你可以把它保存到变量

var c = console.timeEnd('a');
c/1000+'s';

或者您可以将此变量保存到窗口对象以供最新使用

window.c = console.timeEnd('b');
window.c