0

我正在使用该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 毫秒
  • 4.977 毫秒
  • 8.009 毫秒
  • 5.325 毫秒
  • 6.951 毫秒

我在 XAMPP 和 Chrome btw 上运行它。

提前致谢

4

2 回答 2

1

总是有变化,可能是由许多事情引起的。

  • 服务器响应稍慢(帽子也可以阻止浏览器的其他部分)
  • 您的处理器同时在做某事
  • 您的处理器已降频以节省电量
  • 网络中的随机延迟
  • 浏览器扩展在后台做某事

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

于 2013-10-31T22:47:56.273 回答
1

console.time/endTime工作正常,时间确实有很小的波动。

但是,在处理如此的数字时 - 时间都小于 1/100 秒!- 偏差无关紧要,可能会受到大量因素的影响。

于 2013-10-31T22:59:26.550 回答