问题 您使用哪些工具和技术来修复浏览器内存泄漏?


我正在尝试修复IE 7中的内存泄漏。使用Drip进行调查,但是当大多数动态生成的DOM元素没有唯一ID时,它没有多大帮助。

提示?


8345
2017-09-18 18:27


起源



答案:


你应该尝试一下 Javascript内存泄漏检测器 在微软内部开发。


6
2017-09-18 18:33



谢谢。我会尝试的 - Tahir Akhtar
只是看看这个网站似乎这就是我想要的。它似乎比我已经使用的调试器功能强大得多。 - Tahir Akhtar
但它总是会在卸载页面时检测到。并且IE7在卸载时恢复泄漏..所以你如何在IE 7中检查? - Sabya


答案:


你应该尝试一下 Javascript内存泄漏检测器 在微软内部开发。


6
2017-09-18 18:33



谢谢。我会尝试的 - Tahir Akhtar
只是看看这个网站似乎这就是我想要的。它似乎比我已经使用的调试器功能强大得多。 - Tahir Akhtar
但它总是会在卸载页面时检测到。并且IE7在卸载时恢复泄漏..所以你如何在IE 7中检查? - Sabya


好吧,最好的办法是了解导致它们的原因,这样您就可以批判性地查看代码,识别可能导致泄漏的模式,然后避免或重构它们。

这里有几个链接可以帮助您入门,两者都非常有用:


3
2017-09-18 18:38



谢谢Dan,实际上我已经阅读了它,包括你提到的第二篇文章。我使用GWT的JSNI非常少,所以很多内存泄漏模式都会被自动取出。仍然看到一些泄漏,但调试器只显示涉及泄漏的TABLE等元素。 - Tahir Akhtar


请记住,内存泄漏真的是关于你自己不清理。你需要的只是一个小组织。

在过去,我创建了自己的代理对象,用于将事件附加到DOM元素。它使用我的javascript库的api来实际设置和删除事件。代理本身只是跟踪所有引用,以便我可以在其上调用一个方法来清除所有潜在的内存泄漏。

出于我的目的,我能够在页面上调用单个解构器,以便在用户离开页面时清除整个页面的泄漏。

您可能必须更精细,但技术是相同的。


1
2017-09-18 18:33



我正在使用具有自定义事件系统的GWT,以避免事件处理程序中与闭包相关的内存泄漏。 code.google.com/p/google-web-toolkit/wiki/... - Tahir Akhtar