← 归档入口

P4 工作台指标支持收口

日期:2026-09-06 · 状态:implemented · partial · 证据:E2 / E4

产品结论

“添加指标”的 17/17 个入口均可选择:14 项可用,Battery、Thermal Status、GPU Counter 3 项条件可用。工作台不再显示静态“部分支持 / 后续批次 / 暂未支持”;条件不成立时保留 null 和原因,不用 0 代替。

StartupTimingCPU Core UsageFrame TimeGPU Counter 已进入 raw → 公式 → wire → Session/CSV → 工作台链路。Foundation 为 collector-foundation.1.4-beta,Mac App 为 1.0.0 (23)

新增公式与质量语义

指标公式 / 映射scope缺失与重置
Startup Running(observedRunningMonotonicNs-launchRequestedMonotonicNs)/1e6process仅 controlled launch 且同 generation;缺失或逆序为 missing;轮询误差上界同样本保存。
Foreground Ready(observedForegroundMonotonicNs-launchRequestedMonotonicNs)/1e6process同 generation 配对;非受控启动不生成。
CPU Core UsagePerCPUUsage[i].CPU_TotalLoaddevice按真实核心槽位动态展开;中间缺核保留 null,不压缩数组导致核编号漂移。
Frame Time(presentedTimestampNs[i]-presentedTimestampNs[i-1])/1e6foreground-device仅 exact debugid 0x31800318 accepted 帧;首帧/逆序/非前台为 missing;不使用 1000/FPS 伪造。
GPU Counter_require=true 直通;_require=false 做同 schema 相邻行差分。device首行差分项 warmup;负差/reset、未知 schema、行宽错误或无 data row 均 missing。

GPU Counter 使用静态 Registry ios.device.gpu.counter.source_native 加动态 counter dimension,单位为 source-native-count。不执行设备下发 JavaScript,不猜测 percent / GB/s。

自动化与构建(E2)

项目结果
冻结 CPython 3.12 全量测试132/132
Swift 全量测试79/79
Workbench 添加入口17/17 可选择;14 可用 + 3 条件可用
Registry / CSV54 个静态 metricID;CSV 54 列;缺值不写 0
Mac App1.0.0 (23) 生产构建完成,ad-hoc 严格签名验证通过
内部测试包Perfowl-1.0.0-beta23-x86_64.zip · SHA-256 6ec4ce72f2e4fc2308ba294114faed5c1d8e9a64bae07b8d5b1bf4f1edb2f7b9 · ZIP 完整性通过
Foundation 离线包perfowl-collector-foundation-1.4-beta-x86_64.tar.gz · SHA-256 b73204f01d11a20612950717e6e42847619652639f67d095f59af28902ddaae0 · tar 完整性与包内 probe 通过

最终冻结二进制真机验收(E4)

事实iOS 17 · 设备 A / 目标 App A
身份 / Raw / dropverified / 624 / 0
Startup Running / Foreground Ready1,325.933 ms / 1,325.933 ms;轮询误差上界 500 ms
分核 CPU6 个核心槽位;150/150 个派生值非空
Frame source1,557,045 records / 32 accepted / unknown chunk 0 / unknown byte 0
GPU Counterschema-ready 1;119 条两整数 heartbeat;无 decoded row;无非空 Metric value,质量保持 missing

StartupTiming、分核 CPU 和 Frame Time 达到 E4 candidate。GPU service 控制、schema 观测与缺值语义达到 E4,但数值门禁未关闭。旧的“decoded row 8 / 280 values”没有被最终冻结二进制复现,本报告不保留该结论。

真实设备、应用、Bundle ID、PID、账号与证书标识仅存在临时验收环境;仓库只保存匿名聚合摘要。

未关门门禁

  1. Battery:物理断开 USB/充电器、保持 Wi-Fi,完成 battery-only E4。
  2. Thermal Status:取得稳定 0–3 当前值源,并跨 iOS 验证。
  3. GPU Counter:定位 heartbeat 后 data row 不返回的协议边界,补 iOS 16/18 和更多 SoC,再做设备公式与单位校准。
  4. Frame Time:补长时连续性、目标进程归因与 PerfDog 同窗校准。
  5. StartupTiming:当前为外部 observed-running / foreground-ready;main、首帧、首个可交互阶段仍需新增可信源。
  6. 原生 UI 搜索→选中→开始→停止→截图/Review 由用户完成人工验收。

下一阶段与整体进度

下一阶段先关闭 P4 原生 UI 人工验收,同时进入 P5 条件指标真机补证,优先 GPU data row、Battery 断电与 Thermal 稳定源。八阶段中 P0–P3 代码链已完成;P4 产品链完成、人工验收开放;P5 公式/来源已接入但三项条件门禁开放;P6 研究中;P7 未开始。