当前位置: 首页 > 科技观察

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

时间:2023-03-12 07:19:52 科技观察

谷歌揭示了Chrome速度快背后的秘密之一,这是Windows系统独有的,包括选项卡冻结、更好的内存管理和释放以及电池优化。最近,谷歌发布了一篇博客,其中透露了他们如何优化Chrome的窗口,从而使启动速度提高了25.8%,崩溃次数减少了4.5%。谷歌此前已经冻结了Chrome浏览器的非活动标签,以减少CPU、GPU和内存的使用,将更多的系统资源留给用户真正需要的前台标签。但此方法仅限于未置于前台、最小化或移出屏幕的选项卡。谷歌在实验中发现,在用户日常使用过程中,有20%的Chrome浏览器窗口被其他应用程序的窗口覆盖或遮挡。因此,谷歌设想,如果这些被屏蔽的窗口也能被当作背景标签,Chrome浏览器将会有更明显的性能提升。基于这个想法,谷歌大约在三年前开始着手一个项目,该项目将实时跟踪每个窗口的遮挡状态,并降低被遮挡窗口中选项卡的优先级。谷歌将这个项目称为“NativeWindowOcclusion”,它可以获取本地非Chrome窗口在用户屏幕上的位置,结合每个Chrome窗口本身的位置,计算出被遮挡的窗口和面积。跟踪哪些Chrome窗口被遮挡主要有两个部分,第一个是遮挡计算,它涉及按Z顺序遍历桌面上打开的窗口,查看每个Chrome窗口是否被它前面的窗口完全覆盖;第二个是决定何时进行遮挡计算。为了防止在遮挡计算时阻塞UI线程,降低Chrome的响应速度,谷歌将遮挡计算放在一个单独的线程上,并考虑了多种可能的情况:忽略最小化的窗口,因为它们本身是Invisible。将不同虚拟桌面上的Chrome窗口标记为已阻止。从前到后遍历桌面上打开的窗口,忽略不可见窗口、透明窗口、浮动窗口、不可见窗口等。从未被遮挡的屏幕矩形中减去窗口的面积。如果窗口是Chrome窗口,检查它的区域是否与未被遮挡的区域重叠。如果不是,则表示Chrome窗口被前一个窗口挡住了。继续迭代,直到捕获所有Chrome窗口。…谷歌在博客中表示,启用此功能带来了显着的性能优势:启动速度加快8.5%至25.8%视频内存使用减少3.1%渲染器整体绘制的帧数减少20.4%渲染器崩溃4.5%减少首次输入延迟减少3.0%首次内容绘制和最大内容绘制速度加快6.7%此功能已作为2020年10月Chrome86版本的一部分向Windows用户推出,谷歌尚未表明此功能是否会在Linux中推出未来或ChromeforMac。本文转自OSCHINA文章标题:谷歌揭秘Chrome速度快背后的大秘密,Windows系统独家文章地址:https://www.oschina.net/news/173410/chrome-native-window-occlusion