我正在我拥有的 WebGL 项目中运行一些内存使用测试。如果我在 Google Chrome 上启动页面并在 Developers Tool 的 Profiles 选项卡上拍摄堆快照,它会说我的页面拥有 7.5 MB。
问题是,如果我查看任务管理器,它使用的实际值几乎是 1 GB!这是意料之中的,因为我真的强迫页面有数千个对象,但问题是:为什么 Chrome 向我显示我只使用了 7.5 MB?
我正在我拥有的 WebGL 项目中运行一些内存使用测试。如果我在 Google Chrome 上启动页面并在 Developers Tool 的 Profiles 选项卡上拍摄堆快照,它会说我的页面拥有 7.5 MB。
问题是,如果我查看任务管理器,它使用的实际值几乎是 1 GB!这是意料之中的,因为我真的强迫页面有数千个对象,但问题是:为什么 Chrome 向我显示我只使用了 7.5 MB?
更新
有本机内存快照,可以向您显示本机内存图。不幸的是,我们删除了它,因为它是一段脆弱的代码。它需要数百个类中的重要仪器,并影响二进制大小。我希望我们以后重新实现它。
曾是
它拍摄了 Javascript 堆的快照。您所有的 javascript 对象都使用 7.5mb。此大小不包括图像、画布、音频文件、插件数据等。
DevTools 中有一个本机内存快照。它计算渲染器进程使用的非 JavaScript 内存,但这是一个实验性功能。
您需要在 中启用 DevTools 实验功能chrome://flags
,重新启动浏览器,在 DevTools 设置面板中启用 Native Memory Profiler 实验功能,然后重新打开 DevTools。
完成所有这些步骤后,您将能够在 Profiler 面板中获取 Native Memory Snapshot。并非本机内存堆中的所有内存块都被计算在内,但我们正在努力解决这个问题。
请使用Chrome 的 Canary 版本。它每天都会更新,并且可以与其他版本的 Chrome 一起使用。
如果您的页面占用了千兆字节的内存并且“其他”栏很大,超过 10%-20%,请向Google Chrome Developer Tools Foums发送有关此问题的邮件。
您仍然可以在配置文件选项卡下拍摄快照,然后单击拍摄头部快照,它会为您提供深入的内存使用统计信息。