如何降低 Google Chrome 的 CPU 占用率?

如何降低 Google Chrome 的 CPU 占用率?

几天前,我开始在 Windows 7 上使用 Google Chrome(最新版本)(所有内容都是最新版本),与 Firefox 相比,我在打开时看到了巨大的 CPU 峰值(高达 100% 的 CPU 利用率)空的标签。我尝试关闭网络预测等功能,但毫无效果。

有没有什么办法可以减少 Chrome 的 CPU 占用率?

我注意到一件让我感到困扰的奇怪事情:当我播放 YouTube 视频/音频(Flash 版本和 HTML5 版本)时,单击顶部的加号按钮打开几个新窗口会导致视频/音频延迟。使用 Firefox 时我没有遇到任何类似的情况。最奇怪的是,当我在另一个 Chrome 配置文件或隐私浏览中打开新页面时也不会发生这种情况。知道为什么会发生这种情况吗?这些页面不是应该保存在单独的进程中吗?为什么在另一个配置文件和同一个配置文件中打开它们之间存在差异?

答案1

首先,检查它是否不是扩展或插件,或者是网站使用的某些后台工作者(要打开 Chrome 任务管理器,请按 Shift+Esc 或菜单 → 更多工具 → 任务管理器)。

如果不是,那么我猜这与硬件加速有关。但请注意,多年来我从未见过这种原因,自从 Windows 8 以来肯定没有见过。

首先,关闭主设置页面底部的硬件加速(点击显示高级设置...在底部chrome://settings,滚动到末尾,取消选中可用时使用硬件加速)。最近的 Chrome 版本要求重新启动,但根据我的经验,此选项会立即应用,至少是部分应用。

如果 Chrome 重启后速度仍没有下降,请打开chrome://flags(将其放在 Chrome 地址栏中并按 Enter 键)并进行如下设置:

  • 加速 2D 画布– 禁用
  • GPU 光栅化- 禁用
  • 硬件加速视频解码- 禁用
  • 零拷贝光栅化器- 禁用

(这是针对 Chrome 53.0.2785.89 的,在 Chrome 不会更新的旧系统上可能有其他选项,例如:

  • 禁用 DirectWriteDisable DirectWrite- 使能够
  • 启用单副本光栅化器- 已禁用
  • 启用零拷贝光栅化器- 禁用
  • 禁用硬件加速视频解码- 使能够

然后点击现在重启在窗口底部。

如果一切都正常(但整体上可能会慢一点),你可以逐个选项切换回默认值,直到找到导致问题的选项。

(如果在标志列表中找不到选项,请跳过它。也许还可以寻找有关 GPU 和硬件加速的其他选项,并确保禁用硬件加速和 GPU 使用。Chrome 经常更新,几乎每个版本都会添加和删除标志)。

问题的答案:

有没有什么办法可以减少 Chrome 的 CPU 占用率?

如果这些峰值是由原生 chrome 引擎(例如 JavaScript 或 HTML 解析器)引起的,则不是。但更可能是扩展或有缺陷的视频驱动程序(它们的功能被用于硬件加速)。

当我单击顶部的加号按钮打开几个新窗口时,会导致视频/音频滞后。<...> 知道为什么会这样吗?

只能猜测。扩展或插件都可能导致这种情况,或者向合成窗口添加另一个层会导致视频驱动程序延迟(合成窗口有多个层,其中一些由硬件渲染,例如,通过硬件视频解码)。这就是为什么我建议关闭硬件加速并检查。

这些页面不是应该保存在各自的进程中吗?

它们确实被保留了,但有一个主进程(每个配置文件)将信息输出到窗口。如果此进程因某种原因停止,窗口更新将停止,并且看起来 Chrome 没有响应。我猜,声音输出也是通过该主进程完成的,这就是声音滞后的原因。

您可以使用以下方式检查进程树进程探索器

为什么在另一个配置文件中打开它们和在同一个配置文件中打开它们有区别?

扩展和插件设置是针对每个配置文件的,并且在隐身模式下扩展默认关闭。这就是为什么它在不同的配置文件中可能会有不同的表现(即使只有一个主 chrome 进程)。

答案2

重置 Google Chrome:

  1. 单击工具栏上的 Chrome 菜单,然后单击“设置”。

  2. 从页面底部选择“显示高级设置”,然后单击“重置浏览器设置”。

  3. 单击“重置”可将浏览器配置恢复为默认配置。

答案3

打开chrome://flags并搜索delegated renderer,看看是否可以启用标志以启用委托渲染器(又名 Übercompositor)。您还必须确保已启用加速渲染,因为这依赖于 GPU。您可以在 URL 上查看chrome://gpu

这样做的目的是让渲染过程跳过合成步骤,并将高级绘制命令发送到浏览器进程,将其与自己的合成通道合并。这降低了 GPU 填充率,是帮助降低功耗的好方法。

答案4

我从一些网站学到的一个技巧:

  • –-purge-memory-button在 Chrome 的命令行中使用并单击Purge memoryChrome 的任务管理器,它将释放内存(如果可能)

显然,只需禁用扩展,这也会节省内存。

另外,一些网站提到福塔布,一个在启动时暂停所有其他选项卡直到加载的扩展。

相关内容