在JavaScript中debugging内存泄漏的工具

我在一个相当复杂的JavaScript项目中遇到了内存泄漏问题,希望有一些工具可以帮助我指出问题的原因。

我曾尝试使用Google Chrome开发者工具“个人资料”标签,在该标签中我可以拍摄HEAP快照,并将其与以前的快照区分开来(请访问http://www.youtube.com/GoogleDevelopers#p/c/B9EC47A6AAE4540F/1/OxW1dCjOstE以获取在该function上启动)。

我可以看到这个工具的内存消耗,但从那里我无法find一个方法来检测我的对象的引用保存(可能在closures)。

我的问题是:你用什么工具进行JavaScript内存泄漏debugging? 有没有一个工具可以让我看到他们所在的地方的参考资料和一些源代码?

我似乎经常遇到这个问题,除了在您的JavaScript中select智能断点,从来没有真正有一个很好的答案。 有时候,有一种工具可以帮助你find问题的具体情况,其他时间对我来说,find泄漏是一个漫长的过程。

查看Chrome DevTools中的“ 分配”分析器 ,该分析器为您提供分配的UI,然后允许您回到其保留器。

这里是Mozilla泄漏工具的一个很好的列表 。 另外,还有一些关于如何使用这些工具的截屏 。 特别是,您可能会对“堆栈跟踪后处理”部分感兴趣,因为它提到可以获得更好的符号,并从堆栈跟踪文件名/行号信息。

如果您可以在Windows上使用Internet Explorer,那么这里是一个JavaScript内存泄漏检测程序 ,它也可能会有用。

最后,我在阅读这里的一篇文章后 ,在github上find了一个名为MemoryLeakChecker的漂亮工具,该工具查找大型数据结构,并试图帮助您查明内存泄漏的位置。

希望这有帮助,并让我知道哪一个(如果有)最终帮助你。 对不起,由于缺乏实际的超链接,因为我现在不到10个声望,所以我不能把它们都放在post里。