无头浏览器Chromium-性能

5
我一直在苦恼无头Chromium的性能问题。我的计划是至少以30fps(甚至更高)的速度捕获加载的网站。然而,随着分辨率的增加,返回帧的频率会下降。
对于720p的窗口分辨率,每秒钟可以轻松达到约35fps,但当分辨率变为1080p时,返回的帧数就会下降到约20fps或更低。 我在Google Cloud Compute Engine上运行Chromium,使用的是具有30个CPU的机器,但并未完全利用所有资源。
你们中有没有人遇到类似的问题?
我的一些设置:
- 应用程序使用Chrome DevTools事件“Page.screencastFrame”来捕获帧。 - Google Cloud Compute Engine - 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

1
同样的问题。在容器中使用Chrome headless需要117秒,而在外部只需要8秒。 - MortenB
@MortenB,你解决了这个问题吗? - mbutan
1个回答

1
我发现如果在空闲时期运行容器,它们会更快地运行,将其从Gitlab-CI平台移动到具有更快磁盘的机器上可以改善速度。
容器的大小很重要(如Alpine),同时在容器主机上安装非常快的SSD。在新的环境中运行带有Chromium v77的Alpine v3.10容器,我能够将时间从117秒缩短到43秒,但是Alpine并不是非常灵活,如果您需要编译东西,它几乎与Ubuntu容器一样大。

你能否写下更多关于“静默期”的细节,这是什么意思? - mbutan
@mbutan:沉默期只意味着系统负载较小,我的容器可以使用更多资源。我现在正在使用Chrome v85和v85驱动程序,情况好多了。 - MortenB
@MorenB,你能够达到1080p内容的30fps吗?即使系统有很多空闲资源,我仍然在截图性能方面遇到困难。我可以问一下你的系统规格以及你得到的结果吗? - mbutan
@mbutan:我在我的Ryzen7 2700x/16GB/4x250GB SSD条带化本地尝试了一下,在1920x1080窗口大小下获得了约20fps。在无头模式下只使用一个核心,我认为它是CPU限制的。 - MortenB
@MorenB 确实,它在某种程度上受到 Chromium 的限制,因为我的机器上 CPU 资源也是空闲的。 - mbutan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接