JavaScript性能评估

Nat*_*int 5 javascript

背景:

我一直在寻找一个参考,或者可能是一个工具,它可以帮助您在理论上评估JavaScript的效率(资源成本).这个搜索已经出现了很多优秀的调试软件,但我无法通过利用资源消耗较少的方法找到有助于我优化代码的东西.

题:

是否有任何资源(在线指南,列表,数据库,书籍,任何东西)或某些软件(基于网络,浏览器插件,IDE扩展)可以帮助您优化JavaScript?

例:

innerText在IE/textContentFirefox中,所需资源远少于innerHTML任何一种浏览器.

这是一种常识,因为它不那么强大,但我每天都会听到其他比较,并且无法真正验证它们是否实际上更适合优化代码或更高效,即使我可以无法测试它!

有任何想法吗?

Sal*_*lty 8

与strife25相同,firebug有一种非常方便的方法来测量时间而不处理任何日期.只要用这个:

console.time("Your timer name");
//Execute some javascript
console.timeEnd("Your timer name");
Run Code Online (Sandbox Code Playgroud)

然后,检查控制台. 替代文字http://aquate.us/u/62232567893647972047.jpg

编辑 - 关闭30多秒.:(


lin*_*3rd 6

评估Javascript的常用方法是评估一组代码执行所需的时间:

var begin = new Date().getTime();
//do stuff
console.debug( new Date().getTime() - begin );
Run Code Online (Sandbox Code Playgroud)

但是,IE中存在一些问题.如果脚本运行时间<15ms,则IE返回0ms作为结果.

各种javascript库都有测试框架来帮助评估代码的速度.Dojo的测试框架称为DOH.

John Resig还制作了一个名为FireUnit的firebug插件,它允许您轻松评估函数执行所需的时间,并通过一些配置,还输出函数的Big O,这是一个很棒的数据.

查看JSConf上有关JS性能测试的Resig视频:

测量Javascript性能 - John Resig

FireUnit破旧

  • jsyk,在笔记本电脑上,IE9的计时器分辨率取决于计算机当前的电源计划.如果它是在电池上运行那么分辨率是~16ms,但如果它是充电的那么它会更精细.此外,您*应该*在大量迭代中运行测试,因此测试本身可能需要几秒钟,然后除以迭代次数.这使得定时器分辨率几乎没有差别. (2认同)