我去官网上看了测试代码,https://browserbench.org/Speedometer3.0/resources/benchmark-runner.mjs
首先核心的测试代码,可以看WarmupSuite对象里的test数组里的几个测试方法,
可以明确,测试代码完全是单线程运行的,因此只能测出单核性能,并且测试内容存在较多访问内存操作,理论上大缓存的核心比较吃香
测试了如下内容
a) DOM 操作性能:
元素查询 (querySelector, querySelectorAll, getElementById)
Shadow DOM 查询和操作
元素属性设置和获取
b) 事件处理性能:
鼠标事件 (click, mousedown, mousemove, mouseup)
键盘事件 (keypress, keyup)
表单事件 (change, input, submit)
滚轮事件 (wheel)
c) 布局性能:
元素位置计算
布局重计算
视图渲染时间
d) 异步操作性能:
计时器操作 (setTimeout)
动画帧处理 (requestAnimationFrame)
异步事件处理
e) 页面加载性能:
iframe 加载时间
资源加载时间
DOM 准备时间
性能指标收集:
测试框架会收集以下性能指标:
同步执行时间
异步执行时间
总执行时间
几何平均值
性能得分
每次迭代的详细统计数据
测试方法特点:
支持多次迭代测试
可以随机打乱测试顺序
支持预热阶段
提供两种测量方法:基于定时器和基于 requestAnimationFrame
可以设置视口大小
支持等待时间配置
