日期:2026-09-16 · 证据:E2 构建与静态契约 · 状态:implemented · partial
针对真机测试中 StartupTiming = ON, FrameTime = ON 时启动阶段闭环触发 CoreProfile 停止、4秒 drain 超时与重新启动导致 FrameTime 首值延迟 10+ 秒的架构瓶颈,彻底废弃停止重启轮转机制,实施统一单 CoreProfile 连续采集:
StartupTiming = ON, FrameTime = ON 时,确定采集模式为 startup-and-frame,底层 CoreProfile 初始订阅联合 filter(LAUNCH_KDEBUG_FILTERS 并集 PRESENTED_FRAME_FILTER 0x31800000)。startup_semantic_complete 信号,不停止、不排空、不重启 CoreProfile。彻底消除 4 秒 drain 超时与 0.7 秒重启等待。LaunchTraceDecoder 单一入口同时提取启动 trace 与呈现帧,实时写入 frame-events-live.jsonl,消除启动期间帧数据丢失;frame-continuation,单一 Decoder 持续提取呈现帧,彻底杜绝双 Decoder 重复消费 0x31800318;sourceEpoch 严格保持为 1,无轮转中断。| 验证项 | 指标 / 结果 | 状态 |
|---|---|---|
| Python Sidecar 测试套件 | 399/399 通过(新增 9 项单 CoreProfile 连续采集专项单测) | 通过 |
| Swift 客户端测试套件 | 145/145 通过(含 3 项显式基准跳过,0 失败) | 通过 |
| 冻结 Sidecar Core 探针 | ready=true,63 Metric Contracts,9 Source Families,pymobiledevice3 11.3.1 | 通过 |
| 站点知识库门禁与构建 | 63 项 Registry 契约校验通过,VitePress 0 报错 0 死链 | 通过 |
| 序号 | 测试用例 | 验证要点 | 耗时 |
|---|---|---|---|
| 1 | test_core_profile_filters_startup_and_frame_union | 联合 filters 正确包含 launch trace 与呈现帧 0x31800000 | <0.01s |
| 2 | test_startup_and_frame_uses_single_core_profile_tap | 单 CoreProfile Tap 启动,start 次数恰好为 1 | <0.01s |
| 3 | test_startup_complete_does_not_stop_core_profile_in_unified_mode | 启动完成后 tap 不执行 stop/drain/restart | <0.01s |
| 4 | test_startup_only_stops_and_drains_core_profile | 纯启动模式下启动完成后正常安全排空停止 | <0.01s |
| 5 | test_frame_only_uses_presented_frame_filter_without_startup_decoder | 纯帧模式直接使用呈现帧 filter,不走启动解码器 | <0.01s |
| 6 | test_presented_frames_not_duplicated | 无双重解码,呈现帧唯一提取与输出 | <0.01s |
| 7 | test_frame_time_continuous_across_startup_boundary | 跨启动完成边界帧时间戳严格连续单调 | <0.10s |
| 8 | test_source_epoch_stays_constant_in_unified_mode | 连续模式下 sourceEpoch 全程保持为 1 | <0.01s |
| 9 | test_startup_report_complete_in_unified_mode | 连续模式下 Startup 实时报告正常发布且状态完整 | <0.01s |
Build 57 测试安装包已完成生成与严格校验:
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl.app(CFBundleVersion=57,Developer ID Application: Jiacheng Li (76J692XB5C) 签名,Hardened Runtime 开启,时间戳有效,codesign --verify --deep --strict 通过)。/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build57-x86_64.zipbde7d83458762cddbb12557f852a4ab3c38876e6065c48e0f9f248cb32106e9fcodesign --verify --deep --strict 通过。
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build57-x86_64.dmg899b8d8eea2c6f2cd855050c264738be8c475d5b8eac83c4982ad02c950b2e14hdiutil verify 通过,独立挂载卷内 App 严格签名校验通过。
7d6da7f2a0a44ea76d359f565e16b3747511d95b2b038e7efdbfea3056aa6744(6,593,088 bytes)。本机未配置 Apple Notary Service Keychain Profile,公证与 ticket stapling 门禁仍开放;GPL-3.0 法务评估门禁仍开放;当前测试包仅供内部联调与真机复测,交付状态标记为 partial。