Chrome --enable-precise-memory-info不起作用,性能仍然很好。内存仍然是bucketized

时间:2017-09-17 13:38:16

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

我必须以编程方式测试Chrome中某些网页的内存使用情况。

这是我的Chrome版本(60.0.3112.113 - 官方版本 - 64位) enter image description here

关注Chromium Command Line Switches Documentation我使用--enable-precise-memory-info标记运行Chrome:

enter image description here

然后在打开的Chrome实例中,我尝试检查window.performance.memory.usedJSHeapSize

的值

但看起来好像--enable-precise-memory-info旗帜这个信息仍然是bucketized。

enter image description here

即使在Chrome任务管理器(Shift + Esc)中,我看到每次执行后内存使用量增长约1 Mb:

for(let i=0;i<100000;i++) {a.push('sdftgkljhghertyukytedtreut56ytirty7uikty' +i)}

我发现只有一个关于此issue的过时讨论,即使问题存在,我希望能在网上找到更多的讨论。

如果我做错了什么 - 我的错误是什么?

如果不再支持此标志,那么新的正确方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:2)

我没有找到--enable-precise-memory-info不起作用的原因,因此任何有关这方面的帮助都会被批准。

与此同时,我发现了另一种方法,我决定分享它。

我创建了一个chrome扩展,并在其background.js中为chrome.processes.onUpdatedWithMemory添加了一个监听器。

它向我提供了有关Chrome进程的最新信息,包括内存使用情况(privateMemory字段),但此解决方案有两个问题

  1. 要使用chrome.processes,我必须在Dev channel only上运行扩展程序。
  2. 以这种方式收集内存使用情况信息会产生extra CPU usage

答案 1 :(得分:0)

现在,在Chrome 68+中,您可以每50毫秒对源自与网页(eTLD + 1)相同来源的脚本进行一次采样。这意味着您可能不再需要--enable-precise-memory-info

https://chromium.googlesource.com/chromium/src/+/7c7847f69de403f6c798dfccba10812039a60480

答案 2 :(得分:-1)

也许您需要在运行/ Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome --enable-precise-memory-info

之前关闭所有打开的Chrome窗口(cmd + q)