如何最好地对JavaScript执行进行性能分析?

100

有没有适用于JavaScript的优秀分析器?我知道Firebug对代码分析有一些支持,但我想在更长时间范围内确定统计数据。假设你正在构建大量的JavaScript代码,想要确定代码中实际的瓶颈。首先,我想看到每个JavaScript函数和执行时间的分析统计数据。接下来会包括DOM函数。这与减缓速度的操作(例如渲染树上的操作)相结合,就非常完美了。我认为这将很好地表明我的代码是否受到性能、DOM准备或更新渲染树/可视化的影响。

是否有类似我所需求的工具?或者什么是实现我所描述的最佳工具?是自编译浏览器再加上具有分析功能的JavaScript引擎吗?


如果 NODE_ENV=production node --prof app.js 无法满足需求,请参考 https://stackify.com/node-js-profilers/ 或者 https://softwarerecs.stackexchange.com/ 获取其他替代方案。 - Cees Timmerman
6个回答

65

Firebug

Firebug提供了一个高度详细的性能分析报告。在一个庞大而详细的表格中,它会告诉您每个方法调用需要多长时间。

console.profile([title])
//also see
console.trace()
你需要调用console.profileEnd()来结束你的性能分析块。在这里查看控制台API:http://getfirebug.com/wiki/index.php/Console_API

Blackbird

Blackbird还有一个更简单的分析工具


我写过我了解Firefox。我想从影响JavaScript执行的浏览器中获得更多统计数据。 - Norbert Hartl
1
如果你不想编写代码,那么Firebug也可以进行探查。同样的,你也可以直接从控制台进行性能分析。 - Chris B
1
Firebug是你能得到的最好的工具之一。 - Sasha Chedygov
1
同样的事情在Safari Web Inspector中也可以工作。 - olliej
9
Firebug很不错,但我无法相信在OP明确表示想要从多个浏览器中分析代码后,这里有那么多人在高呼“Firebug,Firebug!” - JMTyler

22

Chrome 的开发者工具内置了一个分析器。


2
+1,Speed Tracer很好用,正如楼主所提到的那样,重要的是要在不止Firefox中对代码进行分析,以了解各个浏览器的影响。 - JMTyler

12

虽然提到了Firebug,但你还需要查看一个名为FireUnit的Firebug插件;John Resig在这篇博客文章中讨论了它:

JavaScript函数调用分析

希望这可以帮到你。


这里似乎有下载链接 - https://github.com/jeresig/fireunit/tree/master - T.Todua

4

Firebug+Firefox是必备的工具。IE8的开发者工具栏中也内置了分析器(IE8自带开发者工具栏)。


4

Safari 4的Web检查器还包括一个性能分析器(尽管夜间版本中的版本在递归函数调用方面有所改进)。Web检查器还支持Firebug的性能分析器API。


4

如果您想要针对IE6,7和8浏览器的JavaScript、XmlHttpRequest、DOM访问、渲染时间和网络流量进行监测,您可以使用免费的dynaTrace AJAX Edition


请提供如何在浏览器中安装该插件/扩展的说明。 - T.Todua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接