Google Chrome 没有充分利用 Windows 10 上的所有 RAM

use*_*011 6 memory windows google-chrome

我遇到的问题是,Google Chrome 会将自身限制为32 GB在许多选项卡和进程上分配大约 RAM。

当接近32 GBRAM 使用量时,它将开始非常缓慢地加载页面,或者在某些选项卡上显示内存不足错误。

我发现的所有有关 Chrome RAM 消耗问题的搜索结果都是关于它占用了太多内存。但我的问题是它使用得不够

我的测试使用了大约 500 个选项卡,没有单个进程使用大量内存,使用量均匀分布在许多进程中。

我在具有物理 RAM 和 4 核的笔记本电脑上对此进行了测试64 GB。在具有物理 RAM 和 12 核的台式计算机上128 GB。根据任务管理器/进程浏览器的说法,应该有足够的可用内存,Chrome 没有利用。然而,它并没有使用更多的内存,而是减慢了速度或引发内存不足错误。

起初,我认为这可能是 GPU 加速保留额外内存的问题,但我没有看到。但我认为情况不再是这样了,因为我在台式计算机上进行了测试,据我所知,台式计算机没有任何 GPU 内存限制,并且没有 iGPU。

测试使用:Chrome Version 100.0.4896.127 (Official Build) (64-bit) Windows 版本:10.0.19044.1645 (21H2). 但至少在过去的两年里我一直遇到这个问题。这不是最近的回归。我使用的是 Windows 10 的Pro许可证,而不是HomeWindows 10 的许可证(如果这有影响的话)。

我的问题是:

  1. 我是否忽略了一些固有的或可配置的 Chrome 内存自我限制?
  2. 我是否在 Windows 10 中遇到了某些限制,即它不会提供超过一半的内存或32 GB单个进程组或类似的东西?

我很乐意做任何额外的测试和/或提供更多信息!

更新:我尝试在 Windows 中禁用自动管理的页面大小,并根据此博客文章设置静态大小(最小+最大大小现在与物理 RAM 大小相同),通过此评论找到并重新启动。我还尝试启动不带扩展程序的 Chrome。但两者都没有帮助。我仍然遇到相同的 OOM 错误“内存不足,无法打开此页面请尝试关闭其他选项卡或程序以释放内存”,位于笔记本电脑上的about 32 GB/ used 和台式机上的/ used。64 GB40 GB128 GB

对我来说有点可疑的是,错误发生的地方不是台式机使用的 RAM 的一半,而是大约8 GB高于笔记本电脑。这几乎相当于台式机 Nvidia GPU 板载 GDDR 的大小。也许我应该尝试在没有 GPU 加速的情况下启动 Chrome,看看它是否想要使用更多内存?

2022年9月13日更新:

如果我在设置中禁用“可用时使用硬件加速”,问题就会消失。我已经用 900 个选项卡对其进行了至少一个月的测试,没有出现内存不足错误的问题。当然,完全禁用硬件加速并不是一个令人满意的解决方案。

2023年6月9日更新:

作为解决方法,我现在已禁用 #enable-gpu-rasterization它。chrome://flags/与完全禁用“硬件加速”不同,这不会禁用硬件加速视频解码。它仍然感觉像是黑客攻击,但它使问题不再那么频繁,所以我可以容忍它。不过我仍在寻找合适的解决方案。

use*_*011 2

因此,在我找到令人信服的相反证据之前,我强烈怀疑 Chrome 浏览器崩溃的原因,即使仍然有足够的可用内存,也是由于 Windows 硬编码限制所致GPU memory

GPU MemoryDedicated GPU memory+ Shared GPU memory

任务管理器-性能选项卡-GPU

您可以在性能 - GPU 选项卡的任务管理器中查看GPU MemoryDedicated GPU Memory和大小。Shared GPU memory

Dedicated GPU memory取决于您的显卡,对于 2023 年的硬件,通常介于 1GB 到 32GB 之间。对于您的专用 GPU,它是卡上的 GPU 内存量。对于某些集成显卡,Dedicated GPU memory必须将其与主系统内存分开,并且可以在 BIOS 中配置此分配。例如,请观看此视频,了解如何更改dedicated GPU memory华擎 BIOS 上 AMD 集成显卡的大小。或者此链接介绍如何通过 BIOSdedicated GPU memory注册表编辑更改英特尔集成显卡。

Shared GPU memory仅限于系统内存的一半。修复崩溃的最佳方法是在 Windows 中进行配置,但不幸的是我没有找到任何方法来更改此分配。该消息来源声称这是硬编码的 Windows 限制。这篇更详细的文章微软官方文档似乎证实了这一点。大多数声称解释如何更改的教程shared GPU memory 实际上解释了如何更改dedicated GPU memory集成显卡的分配。

因此,如果您在打开数百个选项卡时遇到此问题,您可以:

  1. 购买更多内存。额外系统 RAM 的一半将导致更高的上限shared GPU memory,从而导致总数增加GPU memory
  2. 禁用#enable-gpu-rasterizationchrome://flags/缓解GPU memory要求。
  3. 关闭其他程序。
  4. dwm.exe我的计算机上使用了大量 (>10GB) 共享 GPU 内存。试试这个: https: //superuser.com/a/496506/182880请注意,系统范围内可用的shared GPU memory含义与进程所需的类似名称完全不同,shared GPU memory如图所示,如果您在进程“详细信息”中启用该列任务管理器的选项卡。
  5. Chrome于 2023 年发布的“内存保护程序”功能Chrome 110也将主要允许您打开 1000 个选项卡但未加载,因为这将使您不太可能遇到“内存不足”崩溃或运行速度减慢的情况。拥有数十 GB 的系统 RAM。根据我的经验,与早期的丢弃选项卡方法或第 3 方“The Great Discarder”浏览器扩展相比,这种方法更可靠,并且更积极地回收内存。