识别 Javascript 堆之外的内存泄漏

Identifying memory leak outside of Javascript heap

本文关键字:内存 泄漏 Javascript 识别      更新时间:2023-09-26

我正在调试一个复杂的Javascript应用程序(数百个文件和近一百万行代码)中的内存泄漏。这是一款游戏,因此它也大量使用 PNG 图形和 2d 画布。

当使用Chrome

的开发工具进行内存分析时,我没有看到堆分配有太大变化,但Chrome任务管理器中的内存使用量继续上升。事实上,GPU内存加上JS内存的总和只占总内存的一半左右。如何调试此内存的其余部分的去向?

在很多情况下,本机内存中的泄漏在 js 内存中具有泄漏的对象。因此,在修复应用程序中的所有js泄漏后,您的本机内存中将没有泄漏的可能性非常高。

查看答案 追踪 JavaScript 内存泄漏的工具

dom 节点直接占用本机内存,因此 dom 节点越高,本机内存消耗越高。另外,由于您提到涉及很多图形,因此您需要考虑到在<img>标签中呈现的图像会占用额外的本机内存,并且通常大于其原始图像大小。

自从一年以来,您问了这个问题,如果您可能已经解决了您的问题,您可以在这里为其他人编写解决方案。