Firefox 的 Javascript 内存分析器

Posted

技术标签:

【中文标题】Firefox 的 Javascript 内存分析器【英文标题】:Javascript memory profiler for Firefox 【发布时间】:2010-09-15 08:29:49 【问题描述】:

是否有用于 Firefox 的工具/插件/功能可以转储您在页面/脚本中创建的 javascript 对象的内存使用情况?我知道 Firebug 的分析器,但我想要的不仅仅是时间。类似于 Yourkit 用于 Java 内存使用分析的东西。

原因是一位同事在数组中使用 id 作为“键”,并在执行此操作时创建了 1000 个空槽。他认为这是无害的,而我的看法不同。我想提供一些证据来证明我是否正确。

【问题讨论】:

【参考方案1】:

我没有尝试过软件验证工具,但 Mozilla 有一些工具可以跟踪 firefox 消耗的总体内存以阻止泄漏:

http://www.mozilla.org/performance/tools.html

和:

https://wiki.mozilla.org/Performance:Leak_Tools

还有一个人说要避免在闭包的上下文中使用大数组,朝向文章底部

http://ajax.sys-con.com/node/352585

【讨论】:

第一个链接已过时 第一个链接已过时。【参考方案2】:

我认为 Software Verification Limited 的JavaScript Memory Validator 可以帮助您,它有分配视图、对象视图、世代视图等。它不是免费的,但您可以使用评估版来检查您同事的代码。他们还有一个性能和覆盖率验证器......

【讨论】:

是的,Javascript 内存验证器是一个很棒的工具。它有许多独特的功能。 虽然我同意这是一个很棒的工具,但它只支持 Firefox 3.6.6。【参考方案3】:

见the source。稀疏数组不会占用大量内存,但如果您的同事不需要任何Array 功能,那么他无论如何都应该使用普通的Objects。

【讨论】:

【参考方案4】:

也可以试试about:memory,它显示了每个窗口占用了多少内存以及有多少内存专用于 JS 对象。它提供了没有每个对象使用情况的高级摘要,但它是调查站点内存需求的良好起点。

【讨论】:

【参考方案5】:

您可以使用 Mozilla 的开发者工具。为了使用 Firefox 的高级开发人员工具,您需要创建调试版本而不是发布版本。有关构建过程的更多信息,请参阅the page。此外,您可以在paper 中找到有关使用 Mozilla 开发人员工具的更多信息。

【讨论】:

以上是关于Firefox 的 Javascript 内存分析器的主要内容,如果未能解决你的问题,请参考以下文章

在不使浏览器崩溃的情况下分析 JavaScript

总结IE和Firefox的Javascript兼容性总结

JavaScript 内存限制

Chrome开发者工具之JavaScript内存分析

Javascript的内存泄漏分析

带有每个语句结果的 JavaScript 分析