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



我正在在我拥有的WebGL项目中运行一些内存使用测试。如果我在Google Chrome上启动页面,并在开发人员工具的"配置文件"选项卡上拍摄了一个堆快照,它将说我的页面持有7.5 MB。

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

update

有本机内存快照,能够向您显示本机内存图。不幸的是,我们将其删除,因为它是一块脆弱的代码。它需要在数百个班级中进行非平凡的仪器,并影响了二进制规模。我希望我们稍后再重新进来。

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

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

您需要在chrome://flags中启用DevTools实验功能,重新启动浏览器,在DevTools设置面板中启用本机内存profiler实验功能和重新打开DevTools。

在所有这些步骤之后,您将能够在Profiler面板中使用本机内存快照。并非本机内存堆中的所有内存块都被计数,但我们正在研究。

请使用Chrome的Canary版本。它每天更新,并与其他版本的Chrome并排合作。

如果您的页面吃了千兆字节的内存,并且具有大的"其他"酒吧,则超过10%-20%,请向Google Chrome Developer Tools Foums寄出一封邮件。

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

相关内容

最新更新