CPU周期,内存使用情况,执行时间等等?

除了感知代码的运行速度之外,是否有一种量化的方法来测试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性能结果

其他回答

我发现执行时间是最好的衡量标准。

黄金法则是在任何情况下都不要锁定用户的浏览器。在此之后,我通常会查看执行时间,然后是内存使用情况(除非您正在做一些疯狂的事情,在这种情况下,内存使用的优先级可能更高)。

大多数浏览器现在都在performance.now()中实现了高分辨率的计时。在性能测试方面,它优于new Date(),因为它独立于系统时钟运行。

使用

var start = performance.now();

// code being timed...

var duration = performance.now() - start;

参考文献

https://developer.mozilla.org/en-US/docs/Web/API/Performance.now () http://www.w3.org/TR/hr-time/#dom-performance-now

有些人建议使用特定的插件和/或浏览器。我不会,因为它们只对一个平台有用;在Firefox上的测试运行不能准确地转换到IE7上。考虑到99.999999%的网站有多个浏览器访问,您需要检查所有流行平台上的性能。

我的建议是将其保留在JS中。创建一个包含所有JS测试的基准测试页面,并计时执行。您甚至可以使用ajax将结果发送给您,以保持它完全自动化。

然后在不同的平台上重复。

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性能结果