外观
TotalCPU
TotalCPU 指整台设备的系统总 CPU 负载(所有核心合计),来源于 DVT sysmontap 的 SystemCPUUsage.CPU_TotalLoad。它与 APP CPU 互补:一个看整机,一个看目标进程。
指标标识
| 项 | 值 |
|---|---|
| metricID | ios.device.cpu.total;配套归一化候选 ios.device.cpu.total.normalized |
| 显示名 | TotalCPU |
| scope | device(整机) |
| unit | percent |
| 底层系统服务 | com.apple.instruments.server.services.sysmontap (DTX 传输通道) |
| 采集命令/实现 | pymobiledevice3.services.dvt.instruments.sysmontap.Sysmontap.create(provider, interval=500) |
| 来源字段 | SystemCPUUsage.CPU_TotalLoad 与 EnabledCPUs |
| 定义版本 | system-gauge.v1;归一化 candidate 为 raw-dvt-divided-by-enabled-cpu-count.candidate.v2 |
| 当前可用性 | available · Experimental |
底层采集与计算公式
1. 物理多核总负载 (Raw)
Sysmontap 周期性推送系统级负载向量 SystemCPUUsage: $$\text{TotalCPU (Raw)} = \text{SystemCPUUsage}.\text{CPU_TotalLoad}$$
- 6 核设备满载时可达 600%。真机后台短采集中观测到 80–170% 属于该口径的正常结果。Perfowl 在采集层保持物理真实值,不裁剪到 0–100%。
2. 核心数归一化候选 (Normalized)
针对习惯 100% 满额视角的场景,Perfowl 提供独立的归一化候选字段: $$\text{TotalCPU (Normalized)} = \frac{\text{SystemCPUUsage}.\text{CPU_TotalLoad}}{\text{EnabledCPUs}}$$
- 质量门禁:仅当回包中显式存在正整数
EnabledCPUs时才执行除法;若系统未上报有效核心数,该值保持missing,绝不猜测核心数或填补伪造值。
质量语义
warmup:首个系统回包没有前值基准,输出为空;valid:后续正常回包;missing:源缺失——为空,不转 0。
当前校准状态
Experimental · B-VAL 门禁开放。 与 PerfDog 展示口径的对齐需要:同一设备、相同场景(静止 / 滚动 / 动画 / 上传 / 下载)、相同时间窗下,对 raw 值、核数归一化候选值与 PerfDog 导出值做三方对照,三轮完成后才允许 UI 定版展示口径。官方资料中"iOS CPU 是否除以核数"本身存在口径冲突记录,Perfowl 以同场数据裁决,不用猜测。
版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.1 | 2026-09-06 | 补全底层服务标识符、PMD3 采集调用命令与精确计算公式规范 |
| v1 | 2026-09-04 | 首次发布;含 raw / candidate 双轨语义与分核向量说明 |
来源批次:DATA-1 实施结果 · B 批次结果 · PerfDog 官方资料调研