用console.time();

时间:2013-10-31 22:44:56

标签: javascript console

我正在使用console.time();方法测试我的javascript速度,因此它会记录加载时函数的加载时间。

if (window.devicePixelRatio > 1) {
    var images = $('img');

    console.time('testing');
    var imagesObj = images.length;
    for ( var i = 0; i < imagesObj; i++ ) {  
        var lowres = images.eq(i).attr('src'),
        highres = lowres.replace(".", "_2x.");
        images.eq(i).attr('src', highres);
    }
    console.timeEnd('testing');
}

但每次重新加载页面时,它都会给我一个非常不同的价值。它应该有这种行为吗?它不应该给我一致的价值吗?

我连续加载了5次,值如下:

  • 5.051 ms
  • 4.977 ms
  • 8.009 ms
  • 5.325 ms
  • 6.951 ms

我在XAMPP和Chrome btw中运行它。

提前致谢

2 个答案:

答案 0 :(得分:1)

总有变化,可能是由许多事情造成的。

  • 服务器响应稍慢(帽子也可以阻止浏览器的其他部分)
  • 您的处理器正在做一些事情
  • 您的处理器降低功耗以节省电量
  • 网络中的随机延迟
  • 浏览器扩展程序在后台执行某些操作

此外,Firefox有一个智能地尝试优化javascript执行的系统,在大多数情况下它会表现更好,但它有点随机。

答案 1 :(得分:1)

console.time/endTime工作正常,时间确实确实以金额波动。

然而,在处理此类号码时 - 时间都不到1/100秒! - 偏差是无关紧要的,可能会受到很多因素的影响。