Skip to content

Perfowl 技术能力矩阵 ​

这页面向需要继续下钻实现与证据边界的读者,回答:各性能能力由哪条 source family 提供、当前产品 ownership 是什么、在什么条件下成立、证据还缺什么。 如果只想快速知道“Perfowl 现在能看什么”,先看 产品能力总览。

精确 metricID 数量、source/sourceKey 与 definitionVersion 不在标题里手工冻结,统一以 Registry 指标合同索引 和自动门禁为准。

先读 能力与证据模型:production、candidate、migrating、E2/E4、运行条件和平台覆盖是不同维度,不能压缩成一个“支持/不支持”。


一、如何读这张矩阵 ​

字段含义
能力族用户要解决的性能问题,不等同底层服务名
当前 source ownership当前 Registry / 产品正式从哪里取事实
Product Stateproduction / candidate / migrating / research / legacy
Runtime Condition前台、process-cold、battery-only 、schema-ready 等物理前置条件
Evidence当前已有什么离线、集成或真机证据;具体系统范围看兼容矩阵
迁移 / 开放门禁尚未完成的 source 切换、跨版本 E4、外部同窗或数值校准

二、当前能力族全景 ​

能力族代表指标 / 入口当前 source ownershipProduct StateRuntime ConditionEvidence / 当前边界
Startup Observationobserved_running_ms、foreground_ready_msProcessControl + runningProcesses / lifecycle observercandidate目标启动请求成立、身份可确认作为外部生命周期观测;不等同首帧或 Launch Total
Startup Total / PhasesApp Launch Total · Startup PhasesCoreProfile lifecycle + ProcessControlcandidatecontrolled process-cold;阶段事件是否出现取决于真实生命周期iOS 17 已有多轮真机证据;Total provenance、phase coverage、device loss 必须分别披露;跨版本语义不自动外推
Display PerformanceDisplay Performance · FPS · FrameTimeActivityTrace → CoreAnimation / IOMFBServer / FrameLifetimeimplemented · E4 pendingtarget foreground;primary display;schema observediOS 17 source POC 已验证逐帧链、refresh interval 与约 0.037 MiB/s 低带宽;Registry/CapturePlan/Realtime/Report/UI 已 E2,完整产品与跨版本 E4 待关闭
Frame ExperienceFrame ExperienceDisplay Performance valid FrameTime → derived metricsimplemented · evidence dependenttarget foreground;valid continuous FrameTimeJank/Stutter/1% Low 等只消费标准 FrameTime 序列;旧 CoreProfile decoder 仅保留 legacy replay/compare,不再拥有新 Session 主采集
CPUAPP CPU · TotalCPU · CPU Core Usage · Thread Count · Context Switch Rate · Interrupt Wakeup RateSysmontapproduction / 部分 candidatesource ready;process 指标需 identity verified基础 source family 在已验证系统有真机证据
MemoryPhysical Footprint · Real Memory · Virtual Memory · Available Memory · Free MemorySysmontap / memorystatus production / 部分 candidatesource ready;process 指标需 identity verifiedAvailable Memory、16 KiB page-size 等仍按各 Canonical 页的候选边界阅读
Device NetworkDevice Network Tx/RxDVT networkingproduction有效 interval / host windowdevice scope;与 Process Network 不可互换
Process NetworkProcess Network Tx/RxNetworkStatisticsproduction / candidate calibration目标 PID / generation 有效;source timestamp 连续只统计目标进程;首点、重连、进程重启后重新 warmup
Disk I/ODisk I/O RateSysmontapproductionsource ready;process 指标需 identity verifiedcounter 差分速率,首点 warmup
Foreground GPU GaugesGPU UtilizationGraphics renderer / tiler / device utilizationproductiontarget foreground目标 App 不在前台时置空;不把 SpringBoard GPU 归给 App
GPU Dynamic CounterDynamic GPU CounterDVT GPU dynamic schemacandidatecontrol plane + schema + data row 都成立selector/schema 与 data row 是不同门禁;跨 SoC 单位/公式不可猜
Energy Source-native CostProcess Energy CostDebug Gauge Energyproduction / candidate calibrationtarget PID;source-native value 有效保留 Apple source-native cost 语义,不擅自改成物理瓦特
Battery ElectricalBattery ElectricalDiagnostics / IORegistryUnsupported(fail-closed 逻辑已验证,从未取得真实 battery-only 放电数值)battery-only:无外接电源且未充电USB 供电时 Current/Voltage/Power 必须 missing;不能以 0 代替"不适用"
Battery / Thermal 温度与状态Battery Temperature · Thermal StatusDiagnostics / IORegistryBattery Temperature: Partial;Thermal Status: Partial(未找到跨 iOS 稳定 0–3 来源)sensor field available具体字段、枚举与版本范围以各 Canonical 和兼容矩阵为准

三、Source Family 不是 Metric Family ​

同一个系统服务可以服务多个指标,一个指标族也可能在架构演进中切换 source。

例如:

当前 source ownership 已收敛为:

text
ActivityTrace FrameLifetime
├── FPS
├── FrameTime
├── P95 FrameTime
├── Refresh Rate
└── Frame Pacing Jitter

Graphics
├── GPU Renderer
├── GPU Tiler
└── GPU Device

CoreProfile
└── Startup lifecycle(短时)

旧 Graphics FPS 与 CoreProfile Presented Frame 仍可存在于历史 Session、legacy replay 或受控 compare 中,但这属于兼容能力,不等于它们仍拥有当前新 Session 的 Display production ownership。


四、平台覆盖不能从 Foundation 一层外推 ​

建议按三层读兼容性:

text
1. Connection / Provider Route
          ↓
2. Source Family 可达、selector、schema
          ↓
3. Metric value / semantic / long-run stability

例如某系统完成连接、截图和基础 Adapter E4,只能证明 Foundation 能工作;Startup phase、GPU Counter data row、Display FrameLifetime 等仍要各自建立真机证据。

具体平台矩阵见 iOS 15+ Collector Foundation 兼容矩阵。


五、测试场景如何选指标族 ​

Controlled Process-Cold Startup ​

优先:

text
Launch Total
+ Total provenance
+ Phase Coverage
+ Startup phases(有则解释,无则披露 missing/N/A)
+ APP CPU / Disk / Memory 辅助归因

不要把“9/9 阶段齐全”作为唯一有效启动的前提。

日常滑动与动画 ​

当前新 Session 优先:

text
Display Performance
→ FPS / FrameTime / P95 / Refresh / Jitter

Frame Experience
→ 1% Low / Jank / Stutter / Smooth

Root Cause
→ APP CPU / GPU / IO / Screenshot

长稳 / 巡检 ​

重点:

text
Physical Footprint / Real Memory
Thread Count
APP CPU / TotalCPU
Network
Thermal
Display / Frame Experience(需要长时间稳定 source)

真实放电测试 ​

必须:

text
Wi-Fi / 可用无线连接
+ 拔除 USB / 充电器
+ ExternalConnected = false
+ IsCharging = false

然后才解释 Battery Current / Power。


六、不要用一个图标替代证据阅读 ​

旧式的:

text
✅ 生产可用
🧪 实验性
⚡ 条件受限

可以作为 UI 摘要,但不能替代完整判断。正式验收至少确认:

text
Product State
+ Platform Evidence
+ Runtime Condition
+ Quality
+ definitionVersion

任何一项不成立,都应显式 missing / candidate / unsupported,而不是通过 fallback、旧值保持或补 0 制造连续曲线。


七、精确 metricID 与公式去哪里查 ​

Perfowl · Performance Observer