我希望能够在我的Google Chrome Javascript控制台中获取从console.timeEnd('t')
返回的字符串。
在下面的这个例子中,我想要一个包含"t: 0.276ms"
> console.time('t'); console.timeEnd('t');
t: 0.276ms
< undefined
这是可行的吗?
答案 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