识别 Javascript 堆外的内存泄漏
Posted
技术标签:
【中文标题】识别 Javascript 堆外的内存泄漏【英文标题】:Identifying memory leak outside of Javascript heap 【发布时间】:2015-02-11 17:47:35 【问题描述】:我正在调试一个复杂的 javascript 应用程序(数百个文件和近一百万行代码)中的内存泄漏。这是一款游戏,因此它大量使用了 PNG 图形和 2d 画布。
当使用 Chrome 的开发工具进行内存分析时,我没有看到堆分配有太大变化,但 Chrome 任务管理器中的内存使用量继续上升。事实上,GPU 内存加上 JS 内存总共只占总内存的一半左右。我该如何调试剩余内存的去向?
【问题讨论】:
【参考方案1】:在很多情况下,本机内存中的泄漏导致 js 内存中的对象泄漏。 因此,在您修复应用中的所有 js 泄漏之后,您很有可能不会在本机内存中发生泄漏。
查看答案Tool to track down JavaScript memory leak
【讨论】:
OP 已经声明他们观察到分配的堆内存没有显着变化。那么您链接到的答案的价值是什么?【参考方案2】:dom节点直接占用本机内存,因此dom节点越高,本机内存消耗越高。此外,由于您提到涉及大量图形,您需要考虑到在 <img>
标签中呈现的图像会占用额外的本机内存,并且通常大于其原始图像大小。
自从你问这个问题一年以来,如果你可能已经解决了你的问题,你可以在这里为其他人写你的解决方案。
【讨论】:
以上是关于识别 Javascript 堆外的内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章