我正在进行一些内存使用测试,针对我所拥有的一个WebGL项目。如果我在Google Chrome上启动页面,并在开发者工具的“Profiles”选项卡中进行堆快照,则会显示我的页面占用了7.5 MB。
问题是,如果我查看任务管理器,实际使用的内存值接近1 GB!这是可以预料的,因为我确实强制页面具有数千个对象,但问题是:为什么Chrome向我显示我只使用了7.5 MB?
我正在进行一些内存使用测试,针对我所拥有的一个WebGL项目。如果我在Google Chrome上启动页面,并在开发者工具的“Profiles”选项卡中进行堆快照,则会显示我的页面占用了7.5 MB。
问题是,如果我查看任务管理器,实际使用的内存值接近1 GB!这是可以预料的,因为我确实强制页面具有数千个对象,但问题是:为什么Chrome向我显示我只使用了7.5 MB?
更新
以前有一个本地内存快照可以显示本地内存图表。 不幸的是,我们删除了它,因为它是一段脆弱的代码。 它需要在数百个类中进行非平凡的检测,并影响二进制文件大小。 希望我们以后能重新实现它。
曾经
它拍摄 JavaScript 堆的快照。所有你的 JavaScript 对象使用了 7.5mb 的内存。这个大小不包括图片、画布、音频文件、插件数据等。
DevTools 中有一个本机内存快照。 它计算呈现器进程使用的非 JavaScript 内存,但这是一个试验性功能。
您需要在 chrome://flags
中启用 DevTools 实验功能,重启浏览器,在 DevTools 设置面板中启用 Native Memory Profiler 实验功能,然后重新打开 DevTools。
完成这些步骤后,您将能够在 Profiler 面板中获取本地内存快照。 并不是本地内存堆中的所有内存块都会被计算,但我们正在努力解决这个问题。
请使用 Chrome 的 Canary 版本。 它每天更新,并与其他版本的 Chrome 并行使用。
如果您的页面占用了几个 gigabytes 的内存,并且有一个大的“Other”条,超过 10%-20%,请向 Google Chrome Developer Tools 论坛发送邮件。
您仍然可以在个人资料选项卡下进行快照,并单击“获取头部快照”,从而获得深入的内存使用统计信息。