外观
GPU Counter 动态指标 v1
指标八要素
| 要素 | 内容 |
|---|---|
| 定义 | Instruments GPU service 按设备 schema 返回的动态计数器原生值/差分值 |
| metricID | ios.device.gpu.counter.source_native,通过 dimension counter=<device-schema-key> 区分计数器 |
| scope | device;当前配置是设备 GPU 计数器,不声明目标 PID 独占 |
| unit | source-native-count;未经设备公式证明前不写成 percent/GB/s |
| 来源字段 | requestDeviceGPUInfo、schema notification 的 decode-order,data notification 的 timestamp + uint64 counter rows |
| 质量语义 | schema 和行宽同时成立才发布 candidate;仅 _ 开头且 require=false 的累计字段做相邻行差分;首行 warmup;负差/reset、未知 schema、不完整行为 missing |
| 当前校准状态 | 控制面和动态 decoder E2;iOS 17 最终冻结复测已观察 schema-ready,但未收到可解码 data row,数值、设备公式与跨 iOS/SoC E4 仍开放 |
| 版本历史 | gpu-counter-source-native.candidate.v1 |
原始字段、窗口与公式
GPU service 先返回设备最小采样间隔,再在 schema notification 中返回解码顺序。每行是一个 uint64 timestamp,后接 N 个 uint64 counter。N 必须与当前 schema 完全相等。
text
key 不以 `_` 开头,或 require=true: value[i,k] = raw[i,k]
key 以 `_` 开头且 require=false: value[i,k] = raw[i,k] - raw[i-1,k]只有 schema 明确使用 _ 前缀且 require=false 的计数器做差分,首行仅暖机;其他字段按源绝对值直通。差值为负时按 reset 处理并保持 missing。不执行设备下发的 JavaScript,不把未验证的比例换算为百分比。工作台使用 schema key 动态生成曲线,最多展示 24 个有限值字段;完整 raw 与静态 metricID + counter dimension 同时进入 Session。
缺失、重置和取整
- 未选中 GPU Counter 时不打开 GPU service,不增加默认采集开销。
- 当前 generation 重绑时清空前值,不做跨 App 进程差分。
- 设备不开放 service、schema 不识别或暂无 data 时,页面显示来源质量,不补 0。
- 计算层保留可精确表示的 Double,UI 可格式化一位小数。
版本历史
- v1(2026-09-06):冻结动态 dimension、source-native 单位、差分/reset/fail-closed 与按选择启用规则;来源:P4 工作台指标支持收口方案。