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基准测试中取得了有史以来的最高分。
对于Speedometer而言,这些优化自2024年8月以来带来了22%的性能提升。这22%的提升带来了更好的浏览器体验、更高的商业转化率,以及更深入地享受网络所提供的功能。如果每位Chrome用户每天仅使用Chrome 10分钟,这些改进累计可节省1.16亿小时,相当于大约166辈子的网站加载和操作等待时间。
Speedometer 3.1基准测试详情
Speedometer是在Apple Macbook Pro M4配备MacOS 15系统上测量的。
Speedometer是一个与其他浏览器公开合作创建的基准,通过涵盖Chrome使用的Blink渲染引擎多个不同领域的工作负载来衡量Web应用程序的响应能力:
- HTML解析
- JavaScript和JSON处理
- JavaScript与文档对象模型(DOM)交互
- DOM操作(元素插入和移除)
- 文本大小计算(字体形状分析)
- 层叠样式表(CSS)应用和布局计算
- 像素渲染
本质上,Speedometer测试整个渲染流水线的关键组件。要深入了解这些独立部分,我们推荐观看Chrome大学的"Life of a Script"演讲。
优化方法与具体技术改进
实现卓越的Web性能需要多方面的方法,而对Speedometer的优化证明了产品的整体卓越性。过去一年中,我们的团队专注于优化整个技术栈的基础渲染路径。以下是一些值得注意的优化示例:
内存布局优化
团队深度优化了DOM、CSS、布局和绘制组件中许多内部数据结构的内存布局。Blink现在通过根据访问模式保持状态在适当位置,避免了系统内存的大量无用变动,从而最大化CPU缓存的利用率。在内部内存已经依赖于Oilpan垃圾回收的地方(例如DOM),通过将类型从使用malloc转换为使用Oilpan,扩展了其使用。这通常能加速受影响的区域,因为它在Oilpan的后端很好地打包了内存。
字符串处理改进
过去一年中,渲染器中的字符串处理有了显著改进,尽可能避免了成本高昂的表示形式,并将哈希计算切换为rapidhash。更普遍的是,许多数据结构配备了更好的哈希算法、过滤器和探测算法。
缓存策略优化
在渲染 inherently 变得昂贵的场景中,例如跨各种元素计算CSS样式,现在通过更高的命中率更有效地使用缓存。同时,我们减少了缓存不相关的内容。另一个渲染变得昂贵的领域是字体形状分析;团队显著提高了Apple高级排版字体形状分析的性能,这在渲染文本的任何地方都相关。
发布者:Thomas Nattestad