Chrome在Speedometer 3.1创下历史最高分,为用户节省数百万小时

本文详细介绍了Chrome浏览器在Speedometer 3.1基准测试中实现22%性能提升的技术细节,包括内存布局优化、字符串处理改进、缓存机制增强等核心渲染引擎优化方案。

Chrome在Speedometer 3.1创下历史最高分,为用户节省数百万小时

2025年6月5日 星期四

更新(2025年6月10日):本文已更新,说明测试使用的是Speedometer 3.1基准测试,并实现了22%的性能提升。先前版本错误地将性能提升标注为10%,并将基准测试误称为Speedometer 3。

性能一直是Chrome的核心支柱之一,也是我们持续投入的领域。通过与其他浏览器公开协作创建的开放基准测试,是追踪整体进展、理解改进新领域和验证潜在优化方案的有效工具。在今天的"The Fast and the Curious"博文中,我们将介绍Chrome近期的工作,使其在Speedometer基准测试中获得了有史以来的最高分。

这些优化使Chrome自2024年8月以来在Speedometer测试中实现了22%的性能提升。这22%的提升带来了更好的浏览器体验、更高的商业转化率,以及更深入享受网络内容的机会。如果每位Chrome用户每天仅使用10分钟,这些改进累计可节省1.16亿小时,相当于约166个人终身等待网站加载和执行操作的时间。

Speedometer 3.1测试环境

在配备MacOS 15的Apple Macbook Pro M4上测量的Speedometer 3.1得分

Speedometer是与其他浏览器公开协作创建的基准测试,通过涵盖Chrome使用的Blink渲染引擎多个不同领域的工作负载来测量Web应用程序的响应能力:

  • HTML解析
  • JavaScript和JSON处理
  • JavaScript与文档对象模型(DOM)交互
  • DOM操作(元素插入和移除)
  • 文本大小计算(字体形状分析)
  • 层叠样式表(CSS)应用和布局计算
  • 像素渲染

本质上,Speedometer测试整个渲染流水线的关键组件。要深入了解这些独立部分,我们推荐观看Chrome University的"Life of a Script"演讲。

优化方法

实现卓越的Web性能需要多方面的努力,而对Speedometer的优化证明了产品的整体卓越性。过去一年中,我们的团队专注于优化整个技术栈的基础渲染路径。以下是一些显著的优化示例:

内存布局优化 团队深度优化了DOM、CSS、布局和绘制组件的多个内部数据结构的内存布局。Blink现在通过根据访问模式保持状态在适当位置,避免了系统内存的无效变动,最大化利用了CPU缓存。对于已经依赖Oilpan垃圾回收的内部内存(如DOM),通过将类型从使用malloc转换为使用Oilpan来扩展使用。这通常能加速受影响区域,因为它在Oilpan后端中很好地打包了内存。

字符串处理改进 通过尽可能避免昂贵的表示形式并将哈希切换为rapidhash,渲染器中的字符串在过去一年中有了显著改进。更普遍的是,许多数据结构配备了更好的哈希函数、过滤器和探测算法。

缓存机制增强 在渲染 inherently 昂贵的场景中(例如跨各种元素计算CSS样式),现在通过更高的命中率更有效地使用缓存。同时,我们减少了缓存不相关的内容。另一个渲染昂贵的领域是字体形状分析;团队显著提高了Apple Advanced Typography字体形状分析性能,这在所有文本渲染场景中都很重要。

发布者:Thomas Nattestad

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计