我正在使用太多内存调试Javascript应用程序。在Heap Profiler中,它表示大约有300MB,但根据Chrome的任务管理器,它总共使用了大约950MB,其中包含40MB的Javascript内存。"
似乎任务管理器和Heap Profiler之间的650MB差异是由于本机内存,基于这个问题:
Chrome Heap Snapshot - Why it doesn't show all the memory allocated?
但是,我无法弄清楚"原生记忆"是的,谷歌搜索没有帮助。 什么类型的东西进入本机内存,我将如何调试使用如此多的本机内存?
可能重复(所有未答复):
Heap profiler's reports vs task manager's reports: who to believe?
Huge difference between memory usage displayed in chrome's task manager and memory timeline
答案 0 :(得分:0)
我不会为此付出代价,但我认为本机内存是javascript任务的整个内存切片镀铬储备。这就是它在任务管理器中显示的原因。 另一方面,堆内存包含由javascript任务分配的所有对象。当这样的对象不再有引用时,它可能会被垃圾收集器从堆中删除。 如果你的javascript任务收集越来越多的堆,你的代码可能会泄漏。堆分析器可以帮助您查找此类内存泄漏,但通常,在编写任何代码时,请注意清理对所有对象的引用。