Chrome堆快照 - 为什么它不显示分配的所有内存?

时间:2012-11-10 00:49:52

标签: javascript google-chrome webgl google-chrome-devtools

我在我拥有的WebGL项目中运行了一些内存使用测试。如果我在Google Chrome上启动该页面并在开发者工具的“个人档案”标签上拍摄快照,则会说我的页面保持7.5 MB。

问题是,如果我查看任务管理器,它使用的实际值几乎是1 GB!这是预期的,因为我真的强迫页面有数千个对象,但问题是:为什么Chrome向我显示我只使用7.5 MB?

2 个答案:

答案 0 :(得分:12)

<强>更新

有本机内存快照能够显示本机内存图。 不幸的是我们删除了它,因为它是一段脆弱的代码。 它需要在数百个类中进行非平凡的检测并影响二进制大小。 我希望我们以后重新实现它。

<强>是

它需要Javascript堆的快照。你所有的javascript对象都使用7.5mb。此大小不包括图像,画布,音频文件,插件数据等。

DevTools中有一个本机内存快照。 它计算渲染器进程使用的非javascript内存,但这是一个实验性功能。

您需要在chrome://flags中启用DevTools实验性功能,重新启动浏览器,在DevTools设置面板中启用Native Memory Profiler实验功能并重新打开DevTools。

完成所有这些步骤后,您将能够在Profiler面板中获取本机内存快照。 并非本机内存堆中的所有内存块都已计算在内,但我们正在研究它。

请使用Canary version of Chrome。 它每天都会更新,并与其他版本的Chrome并排使用。

如果您的网页占用千兆字节的内存并且有大的“其他”条,超过10%-20%,请将相关邮件发送至Google Chrome Developer Tools Foums

答案 1 :(得分:-1)

您仍然可以在配置文件选项卡下拍摄快照,然后点击拍摄快照,它会为您提供深入的内存使用情况统计信息。