工具追踪JavaScript的内存泄漏(Tool to track down JavaScript

2019-06-17 18:22发布

我有有内存泄漏的地方一个Web应用程序,我无法检测到它。 我已经尝试过Chrome开发人员工具通常的伟大工程,但我无法追查其负责的代码行。 该浏览器的工具只是给我太多的信息,我不能在内存中的对象涉及到我的代码。

是否有任何其他工具可能会有所帮助?

Answer 1:

更新:允许使用记录堆分配配置文件类型。

  1. 开放devtools分析器
  2. 做一个热身动作
  3. 启动分析器
  4. 重复动作几次
  5. 如果操作有泄漏,你会看到在概述窗格中的相同数量的蓝条组
  6. 停止Profiler
  7. 在概述中选择一组,这些蓝条的
  8. 调查对象的列表

见截屏的Javascript内存泄漏检测器(Chrome DevTools)

是:你可以用在下一个场景进行细化内存泄漏。

  1. 开放devtools分析器
  2. 做一个动作,使泄漏
  3. 采取堆快照
  4. 重复步骤2和3次树
  5. 选择最新的堆快照
  6. 更换过滤器“所有对象”到“快照1和2之间对象”

之后,你会看到对象的一组泄露的对象。 您可以选择一个对象,并期待在保持器的列表中对象的护树



Answer 2:

使用元素的innerHTML和outerHTML值在独立式DOM树的视堆探查到内存中的对象映射到你的代码和跟踪内存泄漏。



Answer 3:

jQuery的Ajax请求是在我的应用程序的最大元凶。 找到所有你的Ajax jQuery函数:阿贾克斯(),获得()。员额()和内容制定者: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



文章来源: Tool to track down JavaScript memory leak