由于性能下降,谷歌在 Chrome 上禁用 SegmentHeap

阅读时间图标 3分钟读


读者帮助支持 MSpoweruser。如果您通过我们的链接购买,我们可能会获得佣金。 工具提示图标

阅读我们的披露页面,了解如何帮助 MSPoweruser 维持编辑团队 查看更多

Google Chrome

10 月,微软为 Windows 2020 用户发布了 Windows 10 May 32 更新。 新的更新附带 SegmentHeap,它允许 WinXNUMX 应用程序提高 RAM 使用率。 发布后不久,微软宣布已设法使用新功能减少了 Edge 上的 RAM 使用量。

XNUMX 月,谷歌也加入了这股潮流, 公布 它将在 Chrome 的清单中使用 SegmentHeap,这将修复 Chrome 的内存占用行为。 该功能后来 启用 在 Chrome v85 中,但经过进一步测试,谷歌已经继续并在 Chrome 上禁用了该功能。 谷歌 注意到 该功能导致性能问题,因此已被禁用。

随着提交 https://chromium-review.googlesource.com/c/chromium/src/+/2163163 登陆,Windows >= 10.0.19041.0(Windows 10 版本 2004 及更高版本)将选择 chrome.exe 改为使用段堆遗留堆的。 但这导致 WebXPRT3、Speedometer2 和 JetStream2 的性能下降。

另一方面,微软, 注意到 应用程序将一种资源换成另一种资源是很常见的,因此内存使用量的减少意味着 CPU 使用量的增加。 微软进一步表示,可以进行一些改进以减少影响。

将一种资源换成另一种资源是常见的做法。 更常见的是增加内存使用以减少 CPU 使用。 在这种情况下,它会增加 CPU 使用量以显着减少内存使用量,或者更准确地提交。 如果您查看 Bruce 所做的提交,您会发现导致他使用段堆的错误,这是在浏览器进程中使用低碎片堆的 100% 开销。

https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9

也就是说,可以做一些改进来减少影响。 它们分为两个领域,但都不容易。

1) 减少浏览器进行的临时堆分配量。 这将需要对整个浏览器代码库进行重大更改。
2)提高Segment heap本身的性能。 这只能由 Windows 团队解决,我们正在调查我们的选择。

在短期内,这是一种资源与另一种资源的良好权衡,因为内存/提交使用是浏览器用户的一个重要痛点。

不幸的是,昨晚谷歌 决定 继续禁用 SegmentHeap。 它已被移到 GN 标志后面,因此团队可以继续试验该功能,因此这不是路的尽头。

默认禁用段堆并添加一个GN标志来控制它。

有人担心,段堆的成本并不能证明其成本是合理的(请参阅 crbug.com/1102281)。 这个 CL 默认禁用它,并将这个特性放在一个 GN 标志后面,让我们继续试验它。

通过: Techdows

有关主题的更多信息: 谷歌, 谷歌Chrome浏览器, Google Chrome加纳利, 段堆

发表评论

您的电邮地址不会被公开。 必填带 *