Skip to content

GPU Counter 动态指标 v1

指标八要素

要素内容
定义Instruments GPU service 按设备 schema 返回的动态计数器原生值/差分值
metricIDios.device.gpu.counter.source_native,通过 dimension counter=<device-schema-key> 区分计数器
scopedevice;当前配置是设备 GPU 计数器,不声明目标 PID 独占
unitsource-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 可格式化一位小数。

版本历史

Perfowl · Performance Observer