【问题标题】:Explanation of difference between native memory and heap memory in JavascriptJavascript中本机内存和堆内存的区别说明
【发布时间】:2015-09-16 18:05:35
【问题描述】:

我正在调试一个使用太多内存的 Javascript 应用程序。在 Heap Profiler 中,它说大约有 300MB,但根据 Chrome 的任务管理器,它总共使用了大约 950MB,其中 40MB 的“Javascript 内存”。

基于这个问题,任务管理器和堆分析器之间的 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

【问题讨论】:

    标签: javascript google-chrome memory-management


    【解决方案1】:

    我不会为此提供帮助,但我认为本机内存是 chrome 为 javascript 任务保留的整个内存片。这就是它显示在任务管理器中的原因。 另一方面,堆内存包含由 javascript 任务分配的所有对象。当这样的对象不再有引用时,它可能会被垃圾收集器从堆中删除。 如果您的 javascript 任务收集越来越多的堆,则您的代码中可能存在泄漏。堆分析器可以帮助您查找此类内存泄漏,但通常,在编写任何代码时,请注意清理对所有对象的引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2022-12-14
      • 2014-07-30
      相关资源
      最近更新 更多