Skip to content

Build50 启动阶段 revision 实时展示 ​

目标与根因 ​

启动阶段应在自身边界闭合后展示,不得被 Total 或停止采集阻塞。Build49 的实时发布仍要求 Total candidate;最新真机样本中 Initial Frame END 未归因到目标进程,Total 为 missing,所以已完成的前三阶段也被一起拖到 finalizer。该样本 liveQueueDropCount=0,不是 CoreProfile 丢包。

公式与实施 ​

Canonical 已先行入档 core-profile-app-lifecycle.candidate.v6:完整阶段按 snapshotSignature 变化发布 liveRevision,Total 尚未闭合时 liveComplete=false。客户端每次消费同 generation 的完整快照,不跨 revision 拼接。不可变 Raw 最终回放仍提供完整 source audit 和 SHA-256 绑定。

实时 CoreProfile 新增固定 DebugID 最小扫描:仅保留帧 marker、公式已冻结的 lifecycle marker 和 PID/TID 归因记录;不在实时路径统计全量 unknown fingerprint。扫描与单 Raw writer 有界并发,解码完成即发布快照,写入仍在处理下一 chunk 前 join;无新增无界队列。

E2 回放与资源 ​

两份真机 Raw 同源回放与完整扫描的 Total、阶段值、spanCount 及 quality 逐项一致。实时快路径:

Rawrecords旧完整扫描v6 最小扫描吞吐chunk P95 / Max
样本 A2,134,3661.999 s0.974 s2.19 M records/s101 / 170 ms
样本 B8,368,1617.672 s4.125 s2.03 M records/s106 / 139 ms

回放进程同时持有两套 decoder 和两份 Raw payload 用于对照,因此 835 MiB 峰值是基准容器上界,不是单个产品 decoder 的常驻值。产品继续在 Total 完成后释放启动语义缓存。

E4 真机验收 ​

在设备 A / 目标 App A 上使用最终 v6 二进制执行 20 次冷启动:

  • 20/20 在 stop 前收到 revision 阶段快照,且快照后 20/20 继续收到常规 sample;
  • 首次阶段展示 P50 1690.822 ms、P95 1743.549 ms、Max 1968.403 ms;
  • source chunk 到 wire 快照 74 个样本,P50 560.996 ms、P95 951.799 ms、Max 1027.246 ms;
  • System Interface / Static Runtime 为 20/20,UIKit Scene Creation 19/20,Initial Frame 与 Total 为 16/20;
  • liveQueueDropCount=0 为 20/20,采集正常停止 20/20。

额外 4 轮常规全指标采集中,3 轮完整通过并在快照后继续 3~4 个 sample;1 轮在第二 revision 后发生设备连接终止,独立记为 transport partial,不与启动公式失败混同。

结论与开放项 ​

“已完成阶段不等停止、也不等 Total”已实施并有 E4 证据;source chunk 到 wire 的 P95 已达到 1 s 目标,Max 超出 27.246 ms,仍保持 partial。Total 完整率为 80%,低于 95% 目标;UIKit Initialization 与 Scene callback 覆盖也未达到核心阶段目标。这些 missing 来自当前 CoreProfile 后半段事件/归因覆盖,本批未猜测新 code、未补 0。

Python 302/302 通过;Swift 130 项中 127 通过、3 项显式资源基准默认跳过;64 Registry 与站点门禁通过。Build50 为 x86_64 内部测试包,已使用 Developer ID Application 签名并通过 codesign --verify --deep --strict 和独立解包运行验证;本机缺少可用的 Notary Service 凭据配置,因此未完成 notarization/stapling,Gatekeeper 仍标记为 unnotarized。GPL-3.0 法务门禁也依旧独立开放,不作为外部正式发行。

Perfowl · Performance Observer