CPU周期,内存使用情况,执行时间等等?
除了感知代码的运行速度之外,是否有一种量化的方法来测试JavaScript的性能?
CPU周期,内存使用情况,执行时间等等?
除了感知代码的运行速度之外,是否有一种量化的方法来测试JavaScript的性能?
当前回答
UX Profiler从用户的角度来解决这个问题。它将所有浏览器事件、网络活动等由用户操作(点击)引起的事件进行分组,并考虑到延迟、超时等所有方面。
其他回答
我发现执行时间是最好的衡量标准。
我同意,感知到的表现真的是最重要的。但有时我只是想知道哪种方法做某事更快。有时这种差异是巨大的,值得了解。
你可以使用javascript计时器。但我通常会得到更一致的结果使用本机Chrome(现在也在Firefox和Safari) devTool方法console.time() & console.timeEnd()
我如何使用它的例子:
var iterations = 1000000;
console.time('Function #1');
for(var i = 0; i < iterations; i++ ){
functionOne();
};
console.timeEnd('Function #1')
console.time('Function #2');
for(var i = 0; i < iterations; i++ ){
functionTwo();
};
console.timeEnd('Function #2')
更新(4/4/2016):
Chrome金丝雀最近增加了行级别剖析开发工具的来源选项卡,让你看到每一行执行了多长时间!
我有一个小工具,可以在浏览器中快速运行小的测试用例,并立即得到结果:
JavaScript速度测试
您可以在测试过的浏览器中测试代码并找出哪种技术更好。
你可以使用这个:http://getfirebug.com/js.html。它有一个JavaScript分析器。
JSLitmus是一个轻量级的工具,用于创建特别的JavaScript基准测试
让我们看看函数表达式和函数构造函数之间的性能:
<script src="JSLitmus.js"></script>
<script>
JSLitmus.test("new Function ... ", function() {
return new Function("for(var i=0; i<100; i++) {}");
});
JSLitmus.test("function() ...", function() {
return (function() { for(var i=0; i<100; i++) {} });
});
</script>
我上面所做的是创建一个函数表达式和函数构造函数,执行相同的操作。结果如下:
FireFox性能结果
IE性能结果