Google 透露 Chrome 快速背后的一大秘密,Windows 系统独占

系统 浏览器
近日 Google 发布博客,在博客中透露了他们如何针对 Chrome 的窗口进行了优化,从而使启动速度提高 25.8%,崩溃次数减少 4.5%。

时常关注 Google Chrome 浏览器更新的用户应该知道,Google 在过去几年时间里为 Chrome 资源占用和速度提升做出了非常多的改进,其中包括标签页冻结、更好的内存管理和释放,以及电池优化。

近日 Google 发布博客,在博客中透露了他们如何针对 Chrome 的窗口进行了优化,从而使启动速度提高 25.8%,崩溃次数减少 4.5%。

Google 此前已经针对 Chrome 浏览器的非活跃标签页进行冻结来减少 CPU、GPU 和内存的使用,将更多的系统资源留给用户真正所需的前台标签页。但这个方法仅限于那些没有被放置在前台、最小化或被移出屏幕的标签页。

Google 在实验中发现,在用户日常使用中有 20% 的 Chrome 浏览器窗口被其他应用的窗口所覆盖,或者说被遮挡。因此 Google 设想,如果能够把这些被遮挡的窗口也当作后台标签来看待的话,Chrome 浏览器还会有更加明显的性能提升。基于这个设想,Google 大约在三年前开始研究一个项目,该项目能够实时追踪每个窗口的遮挡状态,并降低被遮挡窗口中标签的优先级。

Google 将这个项目称为「Native Window Occlusion」,能够获取用户屏幕上的本地非 Chrome 窗口的位置,再结合 Chrome 各个窗口自身的位置,从而计算出被遮挡的窗口和区域。

追踪哪些 Chrome 窗口被遮挡有两个主要部分,第一部分是遮挡计算,包括以 Z 轴为顺序遍历桌面上打开的窗口,查看每个 Chrome 窗口前面的窗口是否完全覆盖了它;第二部分是决定何时进行遮挡计算。

Google 为了防止在进行遮挡计算时阻塞 UI 线程和降低 Chrome 的响应速度,他们将遮挡计算放置在一个单独的线程上来进行,并考虑了可能出现的众多情况:

  • 忽略最小化的窗口,因为它们本身就不可见。
  • 将不同虚拟桌面上的 Chrome 窗口标记为被遮挡。
  • 从前到后遍历桌面上打开的窗口,忽略不可见窗口、透明窗口、浮动窗口、隐形窗口等。
  • 从未被遮挡的屏幕矩形中减去窗口的区域。
  • 如果窗口是 Chrome 窗口,检查其区域是否与未遮挡区域重叠。如果没有,则表示 Chrome 窗口已被之前的窗口遮挡。
  • 继续迭代,直到捕获所有 Chrome 窗口。
  • ……

Google 在博客中表示,启用该功能后的带来了显着的性能优势:

  • 启动速度提高 8.5% 到 25.8%
  • 显存使用量减少 3.1%
  • 渲染器整体绘制的帧数减少 20.4%
  • 渲染器崩溃次数减少 4.5%
  • 首次输入延迟降低 3.0%
  • 首次内容绘制和最大内容绘制速度提高 6.7%

该功能已于 2020 年 10 月作为 Chrome 86 版本的一部分向 Windows 用户推出,Google 尚未表明该功能是否会在未来登陆 Linux 或 Mac 版 Chrome 浏览器。

本文转自OSCHINA

本文标题:Google 透露 Chrome 快速背后的一大秘密,Windows 系统独占

本文地址:https://www.oschina.net/news/173410/chrome-native-window-occlusion

 

责任编辑:未丽燕 来源: 开源中国
相关推荐

2009-12-04 10:20:53

2009-04-23 15:03:06

谷歌Chrome拉斯·巴克

2012-05-21 15:28:01

Chrome浏览器

2014-06-19 13:27:09

2009-11-26 10:57:27

2009-11-13 08:47:43

2009-12-01 09:29:05

MacChromelinux

2011-04-15 09:14:03

抄袭巨头IT

2011-01-06 16:36:05

云计算Google

2017-02-17 08:23:15

Google/科技新闻

2012-05-22 10:32:56

ChromeIE

2010-01-27 09:05:47

Windows 7快速启动

2020-04-15 13:55:28

Kubernetes容器

2017-03-13 10:00:25

Chrome浏览器Windows 10

2018-02-05 16:17:30

Windows 7Windows 10桌面系统

2009-04-02 08:47:04

GoogleAndroid移动OS

2022-12-29 08:00:00

Transforme架构深度学习

2016-05-03 15:48:41

IEChrome浏览器

2012-06-05 09:55:29

Chrome发展史

2012-08-09 09:30:50

浏览器Chrome
点赞
收藏

51CTO技术栈公众号