mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-19 19:51:20 -08:00
48 lines
3.4 KiB
Markdown
48 lines
3.4 KiB
Markdown
# ENG-13 性能资源探针的最小观察时间
|
||
|
||
MOD-03在新的实际安装包上执行正式性能配对时,Firefox第一轮报告因一项candidate
|
||
资源观察只有349ms而失败。该项是第二组chapter的最后一次资源探针;原门槛要求
|
||
至少350ms,因此失败是有效的观察缺口,不能把它四舍五入成通过或覆盖原报告。
|
||
Chromium/WebKit同轮完成,仍有既有体积/计时review-required信号。
|
||
|
||
## 原因与修复范围
|
||
|
||
冻结BASE-06夹具在记录起始时钟后只执行一次原生setTimeout(350),然后记录实际
|
||
performance.now差值。名义延时不等于该次记录一定已满350ms;现有证据不能进一步
|
||
区分计时量化和原生调度因素,不能据此断言Firefox存在特定计时器实现缺陷。
|
||
|
||
修改只在`scripts/performance-fixture.mjs`的当前适配层加入waitForObservation。
|
||
它按同一个实测时钟计算剩余时间,等待后重新核对,不足时继续等待剩余部分。
|
||
使用probe已有的原始定时器,不把观察器自身加入播放器待释放定时器列表;没有
|
||
改变库的清理动作。记录仍使用实际now()-waitStarted,保持超出的实测时间。
|
||
|
||
`refactor/fixtures/performance.js`、旧JSON、所有计时阈值及350ms校验均不修改。
|
||
适配层对旧、新两个播放器使用相同处理;构造/ready/play/destroy计时循环、媒体、
|
||
热身、样本数量和交替顺序不变。变化仅限计时采样之外的销毁后资源观察窗口及
|
||
原有结果传输替换,测试逐字反向恢复冻结源来保护这个边界。
|
||
|
||
## 验证
|
||
|
||
- 原报告保留:`run-firefox-ERtLa6/report.json`,observedMs=349,校验明确失败;
|
||
原Chromium/WebKit报告也保留,不把本轮重测覆盖到它们。
|
||
- 虚拟单调时钟覆盖首次349ms后补1ms、原生超出到364ms时保留实测值、已经满足
|
||
时不再等待,以及定时器拒绝原样传播。原349ms候选报告变体仍须被校验器拒绝。
|
||
- 适配层测试证明去掉结果传输和最小观察适配后,内容与冻结文件完全一致。
|
||
- 使用同一`run-rawoRh`实际安装的core/chapter产物重新执行三引擎完整三组配对。
|
||
包的源文件、构建工具和安装字节由现有严格验证器核对;该补丁不改变包内容。
|
||
|
||
最终9项测试通过(含冻结发布性能/压缩基线),定向lint、严格工具链、计划及风险
|
||
校验通过。原生三引擎三项完整配对测试通过,共108个旧新资源窗口,54个候选窗口
|
||
均通过严格清理检查。最短实际观察为Chromium350.2000000476837ms、Firefox350ms、
|
||
WebKit350ms;没有取整或使用名义延时代替真实值。第二轮没有计时reviewSignals,
|
||
但首轮Chromium销毁计时信号仍保留,不能把样本波动当作本补丁带来的计时收益。
|
||
三引擎均因原有分发体积信号保持review-required。
|
||
|
||
具体最终结果、环境、来源指纹、原失败和修复后报告见
|
||
[机器证据](../baselines/observation-window-validation.json)。该任务只处理观察窗口
|
||
可靠性,不能把review-required变成性能发布通过;MOD-03及ENG-PERF-01/02继续。
|
||
也不表示所有插件、物理设备、远端CI或最终候选发布完成。无新依赖或API改动。
|
||
|
||
回退本任务提交即可恢复旧适配器;不要回写冻结夹具或放宽350ms断言。原失败应
|
||
继续保留。完成后独立本地提交;不push/publish。
|