我有一个 Web 应用程序,它在某处存在内存泄漏,但我无法检测到它。我已经尝试过通常运行良好的 Chrome 开发人员工具,但我无法追踪负责的代码行。Chrome 工具给了我太多信息,我无法将内存中的对象与我的代码相关联。
是否有任何其他工具可能会有所帮助?
我有一个 Web 应用程序,它在某处存在内存泄漏,但我无法检测到它。我已经尝试过通常运行良好的 Chrome 开发人员工具,但我无法追踪负责的代码行。Chrome 工具给了我太多信息,我无法将内存中的对象与我的代码相关联。
是否有任何其他工具可能会有所帮助?
更新: 让我们使用记录堆分配配置文件类型。
请参阅截屏视频Javascript 内存泄漏检测 (Chrome DevTools)
是: 您可以使用下一个场景来解决内存泄漏问题。
之后,您将看到一组泄漏的对象。您可以选择一个对象并查看对象保留树中的保留器列表
jQuery ajax 请求是我应用程序中最大的罪魁祸首。找到所有 ajax jQuery 函数:.ajax()、.get()、.post() 和内容设置器:.html()、.text()。
转到开发工具中的网络选项卡,刷新当前页面 10 到 20 次。如果你看到事情堆积得太频繁,或者调用没有完成,你就有了内存泄漏。
这是我能够使用 jQuery.load() 解决的最近内存泄漏...
if(!jQuery.terms_html)
$('#tc_container').load(STATIC_DOMAIN + '/terms.html', function() { jQuery.terms_html = $('#tc_container').html() })
else
$('#tc_container').html(jQuery.terms_html)
此外,撰写本文时最新版本的 jQuery 是3.3.1。如果可能,安装最新版本是入门的最佳方式。 https://github.com/jquery/jquery/releases