【问题标题】:Headless Chromium - performance无头铬 - 性能
【发布时间】:2019-08-05 05:27:36
【问题描述】:

我一直在为 Headless Chromium 性能而苦苦挣扎。我的计划是以至少 30fps(甚至更高)的速度捕获加载的网站。但是,随着分辨率的提高,返回帧的频率会下降。

对于 720p 的窗口分辨率,只要将分辨率更改为 1080p,我就可以轻松达到 ~35fps,然后帧数下降到 ~20fps 甚至更低。 我在一台有 30 个 CPU 的机器上运行谷歌云计算引擎上的 chromium,这根本没有完全使用。

你们中有人遇到过类似的问题吗?

我的一些设置:

  • 为了捕获帧,应用使用 Chrome 开发工具事件“Page.screencastFrame”。
  • 谷歌云计算引擎 - 30CPU,30GB 内存
  • 标志:-disable-translate --disable-extensions --disable-background-networking --safebrowsing-disable-auto-update --disable-sync --metrics-recording-only --disable-default-apps --no-first-run --remote-debugging-port=9222 --user-data-dir=/var/app/CHROME --disable-setuid-sandbox --window-size=1920,1080 --disable-gpu --hide-scrollbars --user-agent=true --remote-debugging-address=0.0.0.0 --no-sandbox --no-zygote --headless --autoplay-policy=no-user-gesture-required --disable-notifications --disable-logging --disable-permissions-api

【问题讨论】:

  • 同样的问题。容器中的无头 Chrome 需要 117 秒,外部需要 8 秒。
  • @MortenB 问题解决了吗?

标签: google-chrome video google-chrome-devtools chromium headless


【解决方案1】:

我发现,如果我在静默期运行容器,它们会运行得更快,从 Gitlab-CI 装备转移到具有更快磁盘的机器会改善它。

容器的大小很重要(高山),您的容器主机上也有非常快的 SSD。在新设备上运行 alpine v3.10 容器和 chromium v​​77,我能够将时间从 117 秒减少到 43 秒,但是 Alpine 不是那么灵活,如果你必须编译东西,它几乎和 ubuntu 容器一样大。

【讨论】:

  • 你能写出更多关于“静默期”的细节吗,这是什么意思?
  • @mbutan:静默期只意味着系统负载很小,我的容器可以使用更多资源。我现在使用 chrome v85 和 v85 驱动程序,情况好多了。
  • @MorenB 你能达到 30fps 的 1080p 内容吗?即使系统有很多免费资源,我仍然在屏幕截图性能上苦苦挣扎。我可以询问您的系统规格以及您得到的结果吗?
  • @mbutan:我在我的 Ryzen7 2700x/16GB/4x250GB ssd striped 上进行了本地尝试,在 1920x1080 窗口大小下我得到了大约 20fps。它在无头模式下只使用一个核心,我相信它是 cpu bound。
  • @MorenB 正是它受到铬的某种限制,因为 CPU 资源在我的机器上也是免费的。
猜你喜欢
  • 2017-12-23
  • 2018-06-23
  • 1970-01-01
  • 2018-04-14
  • 2020-10-15
  • 1970-01-01
  • 2019-12-12
  • 2019-07-09
  • 2018-04-23
相关资源
最近更新 更多