Build52 启动初始化保留与即时发布验收

日期:2026-09-13 · 证据:E2 + E4 命令级 · 状态:implemented · partial

根因与实现

32 MiB 预热 ring 会淘汰 RAW v2 header/线程表,激活后若只回放 ring 尾部,decoder 即得到 0 record、0 阶段。Build52 将 bootstrap 独立保留,生产激活只消费 bootstrap + postActivationLive;启动 tap 只订阅生命周期过滤,2.0 秒主动 flush,关闭后串行启用 frame-only tap。完整启动结果在采集中发布并持久化,不等待停止。

最终包内 Sidecar 两轮 E4

项目第 1 轮第 2 轮
Total1814.452 ms1812.444 ms
核心阶段6/66/6
launch→自动完整结果4249.710 ms4266.617 ms
完整结果后 wire sample1616
Session sample2121
frame continuation event308306
启动 live queue drop00
stop→stopped7672.689 ms7813.215 ms

六个核心阶段均有真实值:System Interface、Static Runtime、UIKit Initialization、UIKit Scene Creation、didFinish 和 Initial Frame。启动结果在停止前约 15.7 秒已显示,随后性能样本继续。

willFinish、sceneWillConnect、sceneWillEnterForeground 在目标 App A 中未观测,保持 missing,不补 0。

失败轮与证据边界

保留 acceptance-2 缺 didFinish、smoke-9 的 bufferMode=1 缺 Total、smoke-5 的 9 次启动 live queue drop。最终结论只覆盖回退到 bufferMode=0 后的连续两轮。

效率与回归

Python 314/314;Swift 130 项执行,127 通过、3 项显式资源 benchmark 跳过。两份约 669~675 MB 真机 Raw 的完整重算 wall 4.987~5.162 秒、CPU 4.943~5.115 秒、峰值 RSS 832,090,112~877,916,160 bytes;Launch 1.335~1.348 秒,Frame 1.852~2.041 秒。重算前后 Launch/Frame 五类产物 SHA-256 两轮全部一致。

测试包

Build52 x86_64 App 的 322 个内嵌 Mach-O 与 App 均使用 Developer ID Application + hardened runtime 签名,DMG 容器也使用 Developer ID Application 签名;严格签名、Collector probe、64 Registry 合同、pymobiledevice3 11.3.1、独立 ZIP 解包/启动和 DMG 挂载均通过。ZIP SHA-256 为 26b015823bf7e5a0b449c7a66f681e63a2f98354cc23fd5dc6b5519e58271b59,DMG SHA-256 为 e18ca70067a80396a29a7eb7ba12d97bfa508a9d9081eb44f117e3260aef8ef2。本机缺 notarytool profile,故未 notarize/staple,Gatekeeper 仍拒绝未公证 Developer ID 包;GPL-3.0 法务门禁继续开放。

结论

用户要求的最终包内 Sidecar 连续两轮启动核心阶段、Total、采集中自动展示和后续性能采集均已获得 E4 命令级证据。

整体仍为 partial:frame continuation stop drain 两轮 timeout,全源 drop high-water 为 36/53;约 4.25 秒展示未达到 1 秒目标,完整报告未达到 2 秒目标,原生 GUI 像素录证、Notary/stapling 和 GPL-3.0 法务结论仍开放。