使用Date对象计算Javascript执行速度是否正确

Is using the Date object to count the speed of the Javascript execution correct?

本文关键字:速度 是否 执行 Javascript Date 对象 计算 使用      更新时间:2023-09-26

使用Date对象计算特定代码的速度是否正确?

var start = +new Date(); //get start time
    /*
     *    
     *    all the commands here
     *
     */
var stop = +new Date(); //get stop time
console.log(stop - start);

或者有没有其他更好的方法来获得结果。我想这种方式会受到你在哪个浏览器上测试的影响,等等。。。

通常是的,如果你正在画画,你也可以用来考虑粗略的绘画时间

var start = +new Date();
//Do dom methods draw to canvas etc
setTimeout( function() {
   var stop = +new Date();
   console.log( stop - start - 13 );
}, 13 );

此外,请确保将每个测试作为一个函数调用,并在计时之前预热函数,而不是在线执行代码。

function test1() {
    //ops
}
function test2() {
    //ops
}
var l = 1e5;
while (l--) {
    //warmup
    test1();
    test2();
}
var start = +new Date();
var l = 1e5;
while (l--) {
    test1();
}
var stop = +new Date();
console.log(stop - start);

var start = +new Date();
var l = 1e5;
while (l--) {
    test2();
}
var stop = +new Date();
console.log(stop - start);

您应该注意,此设置会邀请JIT优化(这就是为什么首先要进行JIT优化),因此您应该注意消除死代码。

最好使用控制台计时器:https://developer.mozilla.org/en-US/docs/Web/API/console

console.time("answerswer time");
alert("Click to continue");
console.timeEnd("answerswer time");

是的,有一个更好的方法,检查这个。评测javascript执行的最佳方法是什么?

基本上:

console.profile([title])
...
console.trace()
...
console.profileEnd ()

如果您使用Firefox,这里有一个替代解决方案:您可以使用探查器来了解javascript运行所需的确切时间。

如何使用(快速方式):
1) 点击firefox中的shift-f5打开探查器
2) 开始分析并重新加载您的网页
3) 停止分析,然后加载分析数据
4) 展开小箭头,看起来像:">(total)",它将显示页面加载期间运行的所有脚本,按执行时间(毫秒)排序
5) 找到您的脚本,时间在工具的左侧,并用MS表示。

相关文章: