日期:2026-09-16 · 证据:E2 构建与静态契约 · 状态:implemented · partial
针对真机测试中暴露的两个核心瓶颈进行精准根治:
CoreProfileSessionTap.__init__(provider, time_config, filters) 在初始化瞬间就将 filters 固化写入底层 self._config["tc"][0]["kdf2"]。此前基类 _RawStreamAdapter.prepare_transport() 在应用选择后的 Prewarm 阶段调用了 self._make_stream() 并将实例缓存于 self._prepared_stream。当用户只勾选 FrameTime 点击开始时,start() 直接复用了预热阶段创建的无呈现帧 filters(仅默认/启动过滤)的旧 Tap 实例,导致即使采集 174 个 chunk,0x31800318 出现次数依然为 0。CoreProfileRawAdapter 覆盖 prepare_transport(),仅建立底层 channel 连接和获取 time_config,绝不实例化 CoreProfileSessionTap,保持 self._prepared_stream = None;在 start() 与 restart() 中严格根据本次 Session 最终确定的 options["filters"](包含呈现帧掩码 0x31800000)动态构造全新 Tap;同时增加 coreProfileConfigSignature 与 effectiveCoreProfileConfig 遥测,杜绝配置漂移。flush_startup_core_profile 包含 2.0s 固定无条件 sleep,且等待 completion 时未做事件竞速,导致耗时高达 12.27s(UI 感知约 19s)。startup_trace_complete 与 stop_event 双向事件竞速机制,一旦启动耗时解码完成(liveComplete is True 或状态非 partial),立即取消 2.0s 等待进入 flush/drain;增加关键阶段耗时遥测(drainDurationMs, restartDurationMs, totalRotationDurationMs)。单测基准验证早停等待耗时从 2.0s 降至 0.108s。| 验证项 | 指标 / 结果 | 状态 |
|---|---|---|
| Python Sidecar 测试套件 | 390/390 通过(新增 CoreProfile filters 不缓存单测与事件竞速早停单测) | 通过 |
| Swift 客户端测试套件 | 145/145 通过(含 3 项显式基准跳过,0 失败) | 通过 |
| 冻结 Sidecar Core 探针 | ready=true,63 Metric Contracts,9 Source Families,pymobiledevice3 11.3.1 | 通过 |
| 站点知识库门禁与构建 | 63 项 Registry 契约校验通过,VitePress 0 报错 0 死链 | 通过 |
Build 56 测试安装包已完成生成与严格校验:
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl.app(CFBundleVersion=56,Developer ID Application: Jiacheng Li (76J692XB5C) 签名,Hardened Runtime 开启,时间戳有效,codesign --verify --deep --strict 通过)。/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build56-x86_64.zip042f52f078fea33dceef11b030563ff712256afc69cd581c98cab77400451090codesign --verify --deep --strict 通过。
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build56-x86_64.dmgd40b5deb4db97b5c7ec3c94c640f4b253345ddc8e0ad2d950dfec7e357ce04b7hdiutil verify 通过,独立挂载卷内 App 严格签名校验通过。
59187c99cb2ae813282398a6b9871075cc580dffd2819438b556c814c044d859(6,593,088 bytes)。本机未配置 Apple Notary Service Keychain Profile,公证与 ticket stapling 门禁仍开放;GPL-3.0 法务评估门禁仍开放;当前测试包仅供内部联调与真机复测,交付状态标记为 partial。