外观
P2/P5 基座指标自校准与收口方案
目标与边界
本批建立由 Perfowl 自己可重复执行的指标校准器,完成 P2 System/Network 与 P5 Thermal/Battery/Energy 的软件公式验证、真机源覆盖、质量分类和跨版本回归。
“自校准通过”只证明从原始事实到 Perfowl 指标的数学与质量语义正确,不等于已与 PerfDog/Xcode 完成外部数值对齐。没有物理条件或系统未返回源时,报告必须写 blocked-by-test-condition 或 source-missing,不把值写成 0。
校准分级
| 等级 | 含义 | 通过条件 |
|---|---|---|
| L1 公式 | 公式、单位和缺失规则可确定性重放 | 独立 invariant 断言全部通过 |
| L2 真机源 | 固定版本 Collector 在真机观察到对应 raw 与 metric | identity/scope/schema/drop 门禁通过 |
| L3 响应 | 值能对可解释的场景或状态变化作出响应 | 非缺失样本中出现有效变化,或状态门禁按预期关闭 |
| L4 外部对齐 | 与独立工具同窗对齐 | 本批不使用,状态单独保留 |
P2 公式与 invariant
| 范围 | 公式 / 独立检查 | 窗口与质量 |
|---|---|---|
| APPCpu / TotalCPU raw / 分核 | 有限源值原样承接;分核维度不重复 | 单次 sysmontap gauge;身份缺失不生成进程值 |
| TotalCPU normalized | rawTotalCPU / EnabledCPUs | EnabledCPUs 必须为显式正数;缺失则 null |
| AvailableMemory | vmFreeCount × 16_384 | 仅 iOS 15+ arm64 固定页大小候选;缺字段不生成 0 |
| Process counter rate | (current - previous) / elapsedSeconds | 同 PID + generation;首点 warmup;负差 counter-reset |
| Device Network | sum(intervalBytes) / windowSeconds | 由相邻 process-bearing sysmontap 形成窗口;发送/接收成对 |
| Process Network | intervalDelta / elapsedSeconds | PID scope;不与 device scope 拼接 |
| StartupTiming | 见 startup-observation.candidate.v2 | launch 前 monotonic 起点;同 generation 终点 |
P5 公式与 invariant
| 范围 | 公式 / 独立检查 | 窗口与质量 |
|---|---|---|
| Energy 七项 | 每项非负有限值原样承接;Total 禁止分项求和 | 负 Total 整帧 source-sentinel;真实 0 保留 |
| Battery Current | battery-only 时 abs(InstantAmperage) | ExternalConnected=false && IsCharging=false && current<=0 |
| Battery Voltage | 同一 battery-only 快照的正 Voltage | 不跨快照补值 |
| Battery Power | abs(current_mA) × voltage_mV / 1000 | 同一 20 s 快照;任一无效则 null |
| Battery Temperature | Temperature / 100 | raw 只接受 0~8000;超界 missing |
| ThermalStatus | 仅接受稳定源的 0/1/2/3 | 温度、通知名和 Energy cost 均不代替 |
交付物
perfowl.metric-self-calibration/1机器可读报告:每个 metricID 记录公式版本、观察数、有效/缺失质量分布、最小/最大值、invariant 和 L1~L4 状态。- 当前真机的匿名短 Session,优先覆盖 iOS 17/18;使用受控启动,不依赖人工 UI 点击。
- P2/P5 分阶段结果、新版指标知识页、冻结 HTML 归档、站点时间线和门禁表。
- 软件自动化由 Perfowl 交付;Mac 原生 UI 人工回归留给用户后续执行。
Battery 的 Wi-Fi 模式前置
设备发现从“仅返回 USB 记录”调整为“按设备标识聚合已配对连接”:同一设备同时有 USB/Network 时优先 USB;物理拔线后如 Network 记录仍在,保留同一逻辑设备和 App 选择,重新验证 DVT 路由。只有 Diagnostics 同一快照确认 ExternalConnected=false && IsCharging=false 后,Battery Current/Voltage/Power 才能进入 L2/L3;Network 发现本身不改变这个物理门禁。