Skip to content

Jitter Display 仪器设备级资格方案 ​

决策与边界 ​

attempt-05 a01 只配置了Instruments Display,但 xctrace --attach 在录制开始前找不到DVT稳定观察到的目标进程;没有发送Fixture请求、生成Trace或启动Workbench Session。该失败拒绝的是PID attach路径,不是Display事件候选。不得重试attempt-05配置;其守卫、失败日志和资源收据继续保留。

本方案改用Xcode支持的设备级 --all-processes 记录方式,测试同一份仅含 Display 仪器的模板。该配置会观察整台设备中符合Display来源的数据,目标Fixture只在资格run时启动;后续必须从Trace事件字段中辨认显示身份和实际时间,不能把整机采集本身当作配对或参考精度证据。本批不改产品代码、Jitter公式、既有质量门或r4固定窗,也不计正式轮次。

Jitter仍正式 3/5、整体 37/66;referenceAccuracyValidated=false、referenceUnavailableConfirmed=false、formalFiveRoundsPassed=false。旧r4、attempt-01~05、Session、Lab、Trace和失败证据全部保留,不重放、不拼接。

唯一资格用例 ​

  1. 在新私有attempt中复用并SHA绑定已验证的Display-only模板副本,建立新鲜只读守卫;重新核对设备通道、目标测试App身份与进程生命、全部旧Lab原件SHA/终态/workload释放、请求队列、run前缀、活动Session和真实容量。可用空间两次均须不低于 max(10 GiB, 2 × 136,314,880 B),Data/Disk总容量须一致。旧清单或设备身份变化即停止。
  2. 使用新run名 jitter-displayqual-20261023-b01,构造单一 LabP95 p95-tail-v1 请求:purpose=qualification、referenceEnabled=true、cancelAfterSeconds=35。它仅覆盖20秒基线和随后15秒正常阶段,不计Jitter正式轮次。
  3. 先启动唯一一次设备级Display Trace,--time-limit 40s、--all-processes、只使用Display-only模板和新输出路径;收到真实record-start通知后只发送一次Fixture URL。不会安装App、终止进程、启动Workbench Session或触碰203张预览。
  4. 等待预期的资格取消封口,并回读唯一新run的 summary.json 与六件原件;必须确认reason、workloadReleased=true、idleRestored=true、无第二run、无新Session。仅封存原件,不以“取消”解释为指标异常。

资源、时限与效率门 ​

  • Recorder time limit 40秒;从observer启动至Trace完成保存仍以45秒为硬上限。提前准备模板、请求、输出路径和observer;record-start未确认则不发URL。
  • 进程树RSS严格小于805,306,368 B,probe目录严格小于134,217,728 B;observer按200ms采样,最多225个时间样本。达到任一资源线即停止当前Trace、封存原件并结束attempt,不重试。
  • 设备payload预算2 MiB;两倍新增预算为272,629,760 B,主机和手机空间还须至少10 GiB。预期 Fixture 活动35秒,Trace最长40秒,单次守卫约10秒;运行超时不延长。
  • 守卫以旧文件数为n逐文件SHA,时间复杂度O(n);observer以有界采样数m观察进程集合p和trace文件项f,时间复杂度O(m×(p+f)),m≤225;导出后按trace表行流式检查,时间/内存上限120秒/192 MiB。无产品代码改动,不做虚构的前后性能对比;录制wall、CPU和峰值资源分别记录,未实际采到的维度写 unknown。

事件准入与后续 ​

导出必须包含Display事件行,并覆盖Fixture运行时段;事件要提供可重算单调时间、稳定显示身份(或全程唯一显示证明)与可复核的时间基准。与Fixture presented.json按既有100 µs端点界做独立、连续、唯一配对;刷新率摘要、无时间行、歧义身份、缺行或不明时钟均拒绝此候选。

资格通过仍不等于参考精度通过。只有本用例的独立复核达到字段和配对门,才另立新的正式同场方案;若失败,只拒绝这一设备级Display配置,不据此确认所有参考不可用,也不进入r5、下一指标或磁盘读取率。

执行状态 ​

本方案已在任何新设备写入或Fixture请求前落盘。执行记录和分离复核追加在本页;公开资料不包含设备标识、账号、PID或Bundle ID。

Validation Update · attempt-06 a01 · 2026-10-23 ​

设备级录制与Fixture触发 ​

新鲜守卫通过,确认旧Lab原件132文件/23,301,593 B、22个旧run全部终态且workload释放、旧请求树与gate摘要未变、目标进程生命稳定、活动Session为0、容量门通过。Display-only模板与 --all-processes 录制成功收到record-start通知。随后唯一一次 devicectl --payload-url 请求因 CoreDevice 连接超时返回exit code 1;没有启动Fixture、没有新run、没有手机文件写入或Workbench Session。

失败路径向 xctrace 发送了中断信号;它在5秒停止门内没有正常结束,最终被强制终止。保全的Trace仅53,248 B,只有 RunIssues.storedata 一项;xctrace export --toc 返回exit code 10、无表节点。观察器记录的启动尝试峰RSS为292,765,696 B、输出58,493 B、墙钟7.168320秒,未触及RSS/输出/观察时限;这些不是有效录制或参考数据。此结果反映的是请求投递通道失败及中断后Trace不完整,不能评价Display事件质量。

独立结论与下一步 ​

本方案本次为 partial,没有准入Display,也没有确认参考不可用;Jitter保持3/5、整体37/66。不得重用 run 前缀 jitter-displayqual-20261023-b01,不得重放其请求或重试该 devicectl --payload-url 方式。Trace与全部失败收据保留。后续另立方案,沿用已核验的Display-only事件候选与设备级录制,改由AFC写入全新P95冷请求并通过原生DVT ProcessControl正常冷启动Fixture;使用新attempt、新nonce和新run前缀,先完成新鲜守卫。

Perfowl · Performance Observer