【问题标题】:Chrome --enable-precise-memory-info doesn't work and performance.memory is still bucketizedChrome --enable-precise-memory-info 不起作用并且 performance.memory 仍然被分桶
【发布时间】:2018-02-26 03:05:01
【问题描述】:

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

这是我的 Chrome 版本(60.0.3112.113 - 官方版本 - 64 位)

在Chromium Command Line Switches Documentation 之后,我运行带有--enable-precise-memory-info 标志的Chrome:

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

但看起来尽管--enable-precise-memory-info 标记此信息仍然是分桶的。

即使在 Chrome 任务管理器(Shift + Esc)中,我也看到每次执行以下操作后内存使用量增加了大约 1 Mb:

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

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

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

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

谢谢!

【问题讨论】:

  • 呃,实际上这听起来像是一个值得在crbug.com报告的错误
  • @wOxxOm 好主意。我在那里开了一个新问题:bugs.chromium.org/p/chromium/issues/detail?id=765998
  • @Alexander 当您启动第二个设置了标志的 Chrome 实例时,是否打开了一个 Chrome 实例?
  • @guest271314 谢谢。是的,我关闭了所有实例,甚至在任务管理器中检查了没有任何 Chrome 进程正在运行。但我仍然看到相同的行为。
  • @Alexander 无法在 Chromium 60 上重现。您是否尝试过将--user-data-dir 设置为与默认 Chrome 配置文件夹不同的目录?

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


【解决方案1】:

我没有找到 --enable-precise-memory-info 不起作用的原因,所以任何帮助都将得到满足。

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

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

它为我提供了有关 chrome 进程的更新信息,包括内存使用情况(privateMemory 字段),但是这个解决方案有两个问题:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      在运行 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-precise-memory-info 之前,您可能需要关闭所有打开的 chrome 窗口(cmd + q)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-10
        • 1970-01-01
        • 2019-02-12
        • 2016-04-28
        • 1970-01-01
        • 2012-09-08
        • 1970-01-01
        相关资源
        最近更新 更多