第 20 集:作者:John Chen,位于华盛顿州贝尔维尤(2021 年 4 月)
上一集
速度是 Chrome 的四大核心原则之一。添加基准可以轻松地防止性能下降,并有助于提高性能。良好的基准测试的迭代周期较短,可以比 UMA 更早发现性能下降问题,并且非常适合衡量新功能的性能。
在实验室中定期运行基准。发现回归问题时,bisect
会自动找到导致问题的 CL 并将 bug 分配给 CL 所有者。
Chrome 基准测试将一系列网页互动(称为故事)与性能衡量相结合。类似的用例会被划分到基准自动化测试框架中。新的基准通常适用于某个现有自动化测试框架:
- 系统运行状况
- 正在加载
- 内存
- 渲染
- 电源
- 初创公司
- V8 运行时
- 媒体
- WebRTC
- 新闻媒体
- 闪烁性能
遥测框架会重放记录的故事,以模拟用户与 Chrome 的互动,同时收集记录 Chrome 活动的跟踪记录。故事结束后,框架会运行各种性能指标来分析跟踪记录并计算性能结果。
通过添加新故事,您可以使用某个现有自动化测试框架中的现有指标,涵盖 Chrome 中的大多数新的性能测试用例。您还可以收集其他跟踪记录,向现有基准添加更多指标,或向浏览器传递其他标志。
对于不适用于其他自动化测试框架的一次性情况,请使用 Blink Perf。在 Blink Perf 中,您可以衡量一次性页面上的跟踪事件。
确保基准故事简洁明了,并且仅包含完成您的场景所需的最少量互动。如果测试用例很复杂,则可能很难自动化或者可能不稳定。
将测试数量限制为可涵盖最重要的用例的最小数量。基准化分析基础架构的维护成本高昂。如需查看受支持硬件的列表,请参阅 Chrome Speed 设备。
衡量效果的方法不止一种。基于遥测的基准测试从外部进程控制 Chrome,但这并不总是能够提供所需的控制级别。作为替代方案,基于 gtest 的基准测试允许测试代码与 Chrome 代码共享相同的进程。您还可以考虑使用其他性能工具,例如使用 UMA 衡量用户设备的性能,而不是在实验室中衡量性能。
想要详细了解 Chrome 基准化分析?请与 telemetry@chromium.org 联系。