由Apple、Google、微软与Mozilla合作开发的网页浏览器效能测试工具的主要目标是尽可能反应现实世界的网页情况,以便浏览器在提高基准分数时,能够直接反映在使用者体验上。
由Apple所开发的Speedometer,原本是WebKit专案的一部分,其透过执行一系列的JavaScript和网页功能来评估浏览器的效能,供开发者理解不同浏览器在处理网页时的表现。而WebKit在2022年的时候,与Google和Mozilla展开合作,采用新的治理模式开发Speedometer 3.0基准测试,以共同提高用户的网页浏览效能。
Speedometer 3.0涵盖更广泛且具代表性的用户体验测试,这些新测试模拟一些重要场景和用户互动,是提供浏览器最佳化的重要参考。Speedometer 3.0加入了React Stockcharts、Chart.js、Perf Dashboard和Observable Plot测试以模拟渲染canvas和SVG图表,还有CodeMirror测试程式码编辑、所见即所得编辑TipTap,和针对阅读新闻网站的Next.js和Nuxt.js测试。
新版本还改进了TodoMVC测试,开发团队根据HTTP Archive中的资料,更新程式码适应当前最受欢迎的常见版本,包括Angular、Backbone、jQuery、Lit、Preact、React、React+Redux、Svelte与Vue,同时也针对ES5和ES6的普通JavaScript实作,还有Web Components版本。Speedometer 3.0所进行的测试较之前版本复杂,更符合当前网页应用程式的规模和结构。
Speedometer 3.0本身的测试程式也获得改进,可以更全面地量测浏览器回应使用者操作时所执行的工作,像是绘图(Painting)和非同步任务。相较于Speedometer 2.0,Speedometer 3.0提供了一个更加全面的效能评估,因为过去的方法遗漏了浏览器引擎更新网页渲染所需要做的一些工作。
Speedometer 3.0透过在requestAnimationFrame回呼中,量测测试脚本来计算同步时间,并在第二个requestAnimationFrame安排0秒计时器,触发计算非同步时间,以确保非同步的时间包含测试本身的计时器工作,以及浏览器引擎页面渲染工作
由于开发工具的改进,浏览器工程师现在可以更好理解结果,并且进行后续分析和自定义测试,而且由于开发团队重新设计Speedometer 3.0的测试程式架构,因此在编写和维护复杂测试案例也变得更加容易。由于Apple在推出Speedometer 2.0的时候,诸如原生Promises、async/await、类别和模组等网页功能都还未广泛可用,因此开发团队也趁著Speedometer 3.0,将测试程式的程式码进行技术升级。
Speedometer 3.0是一个网路平台标准的里程碑,其提供了一个新标准,来衡量网路浏览器的效能,并成为浏览器开发者最佳化引擎的目标。由于Speedometer是反映真实世界网路使用的情况,而这个基准测试也会随著时间变化,开发团队承诺会持续更新Speedometer,确保Speedometer能够维持对网路开发实作的相关性和准确性。