Skip to content

架构演进与全指标采集溯源白皮书 ​

历史架构快照

本页保留 Perfowl 在对应阶段的架构与指标谱系,不承担当前能力矩阵或当前 Registry 合同职责。当前产品状态看 能力与证据模型 / 全指标能力矩阵,当前 metricID/source/definitionVersion 看 Registry 指标合同索引。文中的 64 项、Startup S6 等表述应按其记录日期理解,不用于覆盖后续开发事实。

本文记录 Perfowl 从无侵入 iOS 性能采集原型到 Collector Foundation 2.5 Beta 的架构主线和 64 项 Registry 指标谱系。它有意剔除临时编译排错、单次 UI 调试和环境噪声,只保留影响产品可信度、可演进性和证据边界的决定。

当前“64 项”表示 64 个静态 metricID 定义,不表示 64 项均已 E4 或与 PerfDog 数值等价。Startup S6 仍暂停;Battery 放电、ThermalStatus、GPU Counter data row、Frame PID 独占归因和外部同窗等门禁保持开放。

从 0 到 1 的架构演进 ​

1. 从界面原型转向不可变 Session ​

早期基座先接通设备、应用目录和基础曲线,随后将采集模型收敛为 append-only Raw Session。每个事件携带 source、scope、unit/字段、quality、PID/generation 与单调时钟;派生 Metric、报告和导出可以重算,缺值不写 0。这一步把“曲线看起来正常”升级为“原始事实、算法与结果可以复查”。

2. 单一 DTX 运行内核 ​

pymobiledevice3 11.3.1 被固定为唯一设备连接、隧道和 DTX transport owner。原因不是它覆盖全部指标,而是同一 Instruments 会话中必须有唯一消息读取与 channel 生命周期管理;若同时让 pymobiledevice3 与 py-ios-device 读取 DTX socket,会产生序列、channel 和停止时序竞争。

py-ios-device 2.4.26 仅作为 selector/schema 研究参考,不进入运行包、不打开 socket。Perfowl 在 pmd3_deep_services.py 与 Adapter 中用 pymobiledevice3 的 DTX 内核重建 Process NetworkStatistics、GPU Counter 等缺失能力。这样既继承连接与 iOS 17+ 路由能力,又避免双 Provider 争用。

3. Clean Adapter 与确定性 Metric Engine ​

系统服务被拆成 Sysmontap、Graphics、Device/Process Network、Energy、CoreProfile、GPU Counter、Lifecycle 与 Diagnostics Adapter。Adapter 只记录 Raw;RawMetricEngine 执行已入档 gauge、counter rate、interval rate、单位换算和 fail-closed 质量规则。报告层不再重新解释原始私有字段,也不允许 UI 取整回写 Session。

4. 逐帧、能耗与条件能力 ​

CoreProfile RAW v2 被独立解码为 presented-frame 事件,再派生 Frame Time、Jank/Stutter、TinyJank 与透明的 Smooth candidate。Energy 保留 Apple source-native cost,不伪装物理功率;Battery 通过独立 Lockdown/Diagnostics 低频采样,并在外供电或充电时关闭电学值。GPU Counter 采用动态 schema 和 source-native count,数据行与设备公式未证明时不补 0、不猜单位。

5. 产品链与两级准备 ​

SwiftUI Mac 客户端负责设备/App 两级 readiness、指标选择、实时滚动时间轴、截图时间线、停止/报告分阶段状态与 Session Review。客户端消费 Collector 统一 Metric Frame,而不是各自重算公式。商店 App Startup 完成 S1~S5 唯一启动、点击时延和停止审计,但九阶段 0/30,故后续保持暂停且不将 Fixture xctrace 证据外推为商店 App 完成。

当前采集架构 ​

text
MacApp (SwiftUI)
  ├─ Device/App readiness + session orchestration
  ├─ Realtime metric projection / rolling timeline
  └─ Review / screenshot / note / export
          │ JSON lines / immutable artifacts
Collector Core (Python 3.12)
  ├─ pymobiledevice3 11.3.1: sole transport owner
  ├─ PMD3 native services
  ├─ Perfowl Clean Adapters (researched from schemas/selectors)
  ├─ Raw recorder + replay + SHA-256 manifests
  ├─ Metric Engine + Frame/Startup decoders
  └─ Report/quality/calibration gates
          │ USBMux / RSD / DTX / Lockdown
       iOS 15+ device services

全部 64 项指标命令谱系 ​

下表逐项给出当前 Registry 的系统服务、底层调用、实现层和公式简式。精确边界算法、缺失/reset、取整及证据状态以 Canonical 指标页为准;字段级合同索引 由自动门禁与 Swift Registry 对照。

#metricIDscopeunitsource / sourceKeydefinitionVersion系统服务与调用实现归属Canonical
1ios.process.cpu.non_normalizedprocesspercentdvt.sysmontap / cpuUsage2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
2ios.device.cpu.totaldevicepercentdvt.sysmontap / SystemCPUUsage.CPU_TotalLoadsystem-gauge.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
3ios.device.cpu.total.normalizeddevicepercentdvt.sysmontap / SystemCPUUsage.CPU_TotalLoad/EnabledCPUsraw-dvt-divided-by-enabled-cpu-count.candidate.v2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
4ios.device.cpu.core_usagedevicepercentdvt.sysmontap / PerCPUUsage[*].CPU_TotalLoadper-core-gauge.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
5ios.process.memory.physical_footprintprocessbytesdvt.sysmontap / physFootprint2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
6ios.process.memory.residentprocessbytesdvt.sysmontap / memResidentSize2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
7ios.process.memory.xcode_gaugeprocessbytesdvt.sysmontap / physFootprintxcode-memory-candidate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
8ios.process.memory.realprocessbytesdvt.sysmontap / memResidentSizeresident-map.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
9ios.process.memory.virtualprocessbytesdvt.sysmontap / memVirtualSizeraw-gauge.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
10ios.device.memory.availabledevicebytesdvt.sysmontap / System.vmFreeCount*VMPageSizeBytesvm-free-pages-arm64-16k.candidate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
11ios.process.thread.countprocesscountdvt.sysmontap / threadCount2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
12ios.process.scheduler.context_switch_rateprocesscount-per-seconddvt.sysmontap / ctxSwitchcounter-rate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
13ios.process.scheduler.interrupt_wakeup_rateprocesscount-per-seconddvt.sysmontap / intWakeupscounter-rate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
14ios.process.disk.read_rateprocessbytes-per-seconddvt.sysmontap / diskBytesReadcounter-rate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
15ios.process.disk.write_rateprocessbytes-per-seconddvt.sysmontap / diskBytesWrittencounter-rate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
16ios.device.network.send_ratedevicebytes-per-seconddvt.networking / ConnectionUpdateEvent.tx_bytesnetwork-interval.v1com.apple.instruments.server.services.networking / DTX;NetworkMonitor(provider)PMD3 Native + Perfowl window engine说明
17ios.device.network.receive_ratedevicebytes-per-seconddvt.networking / ConnectionUpdateEvent.rx_bytesnetwork-interval.v1com.apple.instruments.server.services.networking / DTX;NetworkMonitor(provider)PMD3 Native + Perfowl window engine说明
18ios.process.network.send_rateprocessbytes-per-seconddvt.debug-gauge.network-statistics / net.tx.bytes.delta/timesource-interval-rate.candidate.v2com.apple.xcode.debug-gauge-data-providers.NetworkStatistics / DTX;ProcessNetworkStatistics.sampleAttributes:forPIDs:Perfowl Clean Adapter on PMD3 DTX说明
19ios.process.network.receive_rateprocessbytes-per-seconddvt.debug-gauge.network-statistics / net.rx.bytes.delta/timesource-interval-rate.candidate.v2com.apple.xcode.debug-gauge-data-providers.NetworkStatistics / DTX;ProcessNetworkStatistics.sampleAttributes:forPIDs:Perfowl Clean Adapter on PMD3 DTX说明
20ios.foreground.fpsforeground-deviceframes-per-seconddvt.graphics / CoreAnimationFramesPerSecond2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
21ios.foreground.gpu.renderer_utilizationforeground-devicepercentdvt.graphics / Renderer Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
22ios.foreground.gpu.tiler_utilizationforeground-devicepercentdvt.graphics / Tiler Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
23ios.foreground.gpu.device_utilizationforeground-devicepercentdvt.graphics / Device Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
24ios.frame.timeforeground-devicemillisecondsframe-pipeline / presentedFrame.timestampNsframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
25ios.frame.fps.averageforeground-deviceframes-per-secondframe-pipeline / 1000/mean(FTime)frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
26ios.frame.fps.at_least_18_percentforeground-devicepercentframe-pipeline / instantaneousFPS>=18frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
27ios.frame.fps.at_least_25_percentforeground-devicepercentframe-pipeline / instantaneousFPS>=25frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
28ios.frame.ftime_ge_100_percentforeground-devicepercentframe-pipeline / FTime>=100msframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
29ios.frame.ftime_positive_delta_gt_100_per_hourforeground-devicecount-per-hourframe-pipeline / currentFTime-previousFTime>100msframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
30ios.frame.drop_per_hourforeground-devicecount-per-hourframe-pipeline / previousFPS-currentFPS>8frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
31ios.frame.med_range_percentforeground-devicepercentframe-pipeline / FPS within median±20%frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
32ios.frame.one_percent_low_fpsforeground-deviceframes-per-secondframe-pipeline / 1000/mean(slowest ceil(1%) FTime)frame-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
33ios.frame.small_jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and FTime>1000/24mstiny-jank.perfdog-public.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
34ios.frame.jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and 83.33msframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
35ios.frame.big_jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and 125msframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
36ios.frame.stutter_percentforeground-devicepercentframe-pipeline / sum(jank excess time)/durationframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
37ios.frame.tiny_jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and FTime>1000/24mstiny-jank.perfdog-public.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
38ios.frame.smoothforeground-devicescoreframe-pipeline / 100*sqrt(mean(((FTime-median(FTime))/median(FTime))^2))perfowl-smooth.robust-rms.candidate.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
39ios.process.energy.total_costprocesssource-native-costdvt.debug-gauge.energy / energy.costenergy-total-gauge.candidate.v1com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
40ios.process.energy.cpu_costprocesssource-native-costdvt.debug-gauge.energy / energy.cpu.costenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
41ios.process.energy.gpu_costprocesssource-native-costdvt.debug-gauge.energy / energy.gpu.costenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
42ios.process.energy.network_costprocesssource-native-costdvt.debug-gauge.energy / energy.networking.costenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
43ios.process.energy.location_costprocesssource-native-costdvt.debug-gauge.energy / energy.location.costenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
44ios.process.energy.display_costprocesssource-native-costdvt.debug-gauge.energy / energy.display.costenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
45ios.process.energy.overheadprocesssource-native-costdvt.debug-gauge.energy / energy.overheadenergy-cost-gauge.candidate.v2com.apple.xcode.debug-gauge-data-providers.Energy / DTX;EnergyMonitor(provider, [pid])PMD3 Native + Perfowl quality gate说明
46ios.device.battery.currentdevicemilliamperediagnostics.ioregistry / InstantAmperage when ExternalConnected=false and IsCharging=falsebattery-discharge-current.candidate.v2com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
47ios.device.battery.voltagedevicemillivoltdiagnostics.ioregistry / Voltage when ExternalConnected=false and IsCharging=falsebattery-voltage.candidate.v2com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
48ios.device.battery.powerdevicemilliwattdiagnostics.ioregistry / abs(InstantAmperage)*Voltage/1000 in same battery-only snapshotbattery-discharge-power.candidate.v2com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
49ios.device.battery.temperature_rawdevicesource-nativediagnostics.ioregistry / Temperaturebattery-temperature-raw.v1com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
50ios.device.battery.temperature_celsiusdevicedegree-celsiusdiagnostics.ioregistry / Temperature/100centi-celsius-to-celsius.candidate.v1com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
51ios.device.thermal.statusdeviceenum-rawdiagnostics.ioregistry / ThermalStatusthermal-status-enum.candidate.v2com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
52ios.device.gpu.counter.source_nativedevicesource-native-countdvt.instruments.gpu / dynamic-schema[counter]gpu-counter-source-native.candidate.v1com.apple.instruments.server.services.gpu / DTX;GPUCounterStream request/configure/start/dataPerfowl Clean Adapter on PMD3 DTX说明
53ios.process.startup.observed_running_msprocessmillisecondslifecycle-observer / observedRunning-launchRequestedstartup-observation.candidate.v2processcontrol + deviceinfo / DTX;ProcessControl.launch + runningProcessesPMD3 Native + Perfowl monotonic observation说明
54ios.process.startup.foreground_ready_msprocessmillisecondslifecycle-observer / observedForeground-launchRequestedstartup-observation.candidate.v2processcontrol + deviceinfo / DTX;ProcessControl.launch + runningProcessesPMD3 Native + Perfowl monotonic observation说明
55ios.process.startup.app_launch_total_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / max(Initial Frame Rendering.end)-min(complete System Interface Initialization.start)core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
56ios.process.startup.system_interface_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[System Interface Initialization])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
57ios.process.startup.static_runtime_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[Static Runtime Initialization])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
58ios.process.startup.uikit_initialization_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[UIKit Initialization])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
59ios.process.startup.uikit_scene_creation_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[UIKit Scene Creation])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
60ios.process.startup.will_finish_launching_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[willFinishLaunchingWithOptions()])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
61ios.process.startup.did_finish_launching_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[didFinishLaunchingWithOptions()])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
62ios.process.startup.scene_will_connect_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[sceneWillConnectTo()])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
63ios.process.startup.scene_will_enter_foreground_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[sceneWillEnterForeground()])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明
64ios.process.startup.initial_frame_rendering_msprocessmillisecondsdvt.coreprofilesessiontap.lifecycle / sum(complete span duration[Initial Frame Rendering])core-profile-app-lifecycle.candidate.v3coreprofilesessiontap + processcontrol / DTX;CoreProfileRawAdapter + RealtimeLaunchTraceDecoderPMD3 transport + Perfowl lifecycle decoder说明

当前能力边界 ​

能力当前事实尚未关门
基础 Sysmontap/GraphicsiOS 16/17/18 已有 E4 来源候选iOS 15、17.4–17.x、外部同窗数值
Process/Device Network双 scope 与源时钟公式已进入 E4 candidate与竞品同窗、更多路由/长时稳定性
Frame Pipeline跨 iOS 来源、确定性回放和候选公式已建立目标 PID 独占归因、真实四场景长窗与阈值
Energy七项 source-native cost 已有 iOS 17/18 E4 来源物理单位/等级阈值与外部同窗
Battery/Thermal条件链和温度来源已建立纯放电 Current/Voltage/Power E4;稳定 ThermalStatus 0–3 来源
GPU Counter控制面、schema 与 decoder E2;iOS 17 schema observed可解码 data row、跨 SoC 公式和单位
Startup商店 App 单次启动/点击时延/停止 30/30 E4九阶段完整率 0/30;S6 暂停
发布x86_64 内部 candidate、ad-hoc 签名universal2、Developer ID、公证、完整 notices 与 GPL 法务结论

版本历史 ​

版本日期变更来源
v12026-09-08阶段收口:沉淀单 DTX 架构真相、Clean Adapter 演进、64 项命令谱系与未关门能力P0 知识库深化结果

Perfowl · Performance Observer