外观
Energy、Battery 与 Thermal 指标 v3
定义与 Registry
| 定义 | metricID | scope | unit | 来源字段 |
|---|---|---|---|---|
| Energy Total | ios.process.energy.total_cost | process | source-native-cost | Energy debug gauge energy.cost |
| CPU/GPU/Network/Location/Display/Overhead | ios.process.energy.cpu_cost / gpu_cost / network_cost / location_cost / display_cost / overhead | process | source-native-cost | 对应 energy.*.cost 与 energy.overhead |
| 电池放电电流 | ios.device.battery.current | device | milliampere candidate | InstantAmperage + ExternalConnected + IsCharging |
| 电池电压 | ios.device.battery.voltage | device | millivolt candidate | 同一 battery-only 快照的 Voltage |
| 电池放电功率 | ios.device.battery.power | device | milliwatt candidate | 同一快照 abs(InstantAmperage)×Voltage/1000 |
| 电池温度 | ios.device.battery.temperature_raw / temperature_celsius | device | source-native / degree-celsius | Temperature / Temperature÷100 |
| 热状态 | ios.device.thermal.status | device | enum-raw | 稳定来源字段 ThermalStatus,仅接受 0–3 |
计算、窗口与取整
Energy 沿用 v2:每个 DVT gauge 回包独立产生候选值,不插值、不差分、不跨样本累计;Total 直接取 energy.cost,不得把六分项求和;非负有限值原样保存,计算层不取整。
Battery 是设备级低频条件指标。Diagnostics 第一次立即读取,此后以 monotonic 固定 deadline 每 20 秒读取;调用耗时不累计漂移,错过窗口不追赶连发。只有 ExternalConnected == false、IsCharging == false、InstantAmperage <= 0 且 Voltage > 0 的同一快照可以生成 Current / Voltage / Power,其中 Current=abs(InstantAmperage),Power=Current×Voltage/1000。计算层保留 double,不取整、不插值、不累计。
Temperature 仍只在原始值为 0–8000 时除以 100。它与 Battery 电学门禁相互独立:USB 下电学三项不可用时,温度仍可作为候选事实。
质量语义
- Energy:身份未核验时七项
identity-unverified;负 Total 整帧source-sentinel;单负分项只关闭该项;通过门禁的真实 0 保留。 - Battery:
ExternalConnected != false为external-power-connected;明确充电为charging;电源状态字段缺失为power-state-missing;battery-only 场景出现正电流为source-sign-unverified。 - Voltage 必须为有限正值;Power 必须由同一快照的有效 Current 与 Voltage 计算,不跨样本拼接。
- Temperature 越界或缺失为 missing;真实 0 保留。
- ThermalStatus 源字段缺失时保持 missing;通知名称、温度、进程 Energy thermal cost 均不可代替 0–3 当前状态。
当前校准状态
Energy Usage 七项已进入实时产品,iOS 17/18 的负值哨兵与真实 0 质量语义达到 E4,数值同窗仍开放。
Battery 三项已经具备公式与 USB fail-closed 代码入口,但 Perfowl 当前只发现 USB 设备,产品仍为 Unsupported。只有完成 Wi-Fi 发现、确认 ExternalConnected=false、进行至少 20 秒低频真机采集并与 PerfDog 同窗后才可点亮。
Battery Temperature 在 iOS 17/18 有候选源;ThermalStatus 尚无稳定当前值来源。PowerTelemetryData 虽存在于部分原始 payload,但单位和语义未冻结,不提升为产品指标。
版本历史
- v3(2026-09-05):增加 battery-only 模式门禁、20 秒固定 deadline、符号与电压规则;来源:CORE-20。
- v2(2026-09-05):Energy Total 与负值哨兵规则,已被本页取代。
- v1(2026-09-05):六项 Energy、Battery 与 Thermal 初始候选口径,已被后续版本取代。