Skip to content

Energy、Battery 与 Thermal 指标 v3

定义与 Registry

定义metricIDscopeunit来源字段
Energy Totalios.process.energy.total_costprocesssource-native-costEnergy debug gauge energy.cost
CPU/GPU/Network/Location/Display/Overheadios.process.energy.cpu_cost / gpu_cost / network_cost / location_cost / display_cost / overheadprocesssource-native-cost对应 energy.*.costenergy.overhead
电池放电电流ios.device.battery.currentdevicemilliampere candidateInstantAmperage + ExternalConnected + IsCharging
电池电压ios.device.battery.voltagedevicemillivolt candidate同一 battery-only 快照的 Voltage
电池放电功率ios.device.battery.powerdevicemilliwatt candidate同一快照 abs(InstantAmperage)×Voltage/1000
电池温度ios.device.battery.temperature_raw / temperature_celsiusdevicesource-native / degree-celsiusTemperature / Temperature÷100
热状态ios.device.thermal.statusdeviceenum-raw稳定来源字段 ThermalStatus,仅接受 0–3

计算、窗口与取整

Energy 沿用 v2:每个 DVT gauge 回包独立产生候选值,不插值、不差分、不跨样本累计;Total 直接取 energy.cost,不得把六分项求和;非负有限值原样保存,计算层不取整。

Battery 是设备级低频条件指标。Diagnostics 第一次立即读取,此后以 monotonic 固定 deadline 每 20 秒读取;调用耗时不累计漂移,错过窗口不追赶连发。只有 ExternalConnected == falseIsCharging == falseInstantAmperage <= 0Voltage > 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 != falseexternal-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 初始候选口径,已被后续版本取代。

Perfowl · Performance Observer