Skip to content

Registry 指标合同索引 ​

本页是 PerformanceModels.swift 当前 MetricDefinition 的机器合同审阅镜像。当前 Registry 数量由代码、site/data/metric-contracts.json 与构建门禁共同确定,不再手写进页面标题。每行冻结 metricID、scope、unit、source、sourceKey、算法版本、服务/通道、调用方式与实现归属;具体边界、质量、公式推导和证据等级进入对应 Canonical 指标页。

契约与代码严密对齐

“合同一致”表示文档与当前产品代码的真实 Registry 字段完全严密对齐,由自动化门禁保证零漂移。每一项指标均可在对应 Canonical 指标专论中查阅深度业务含义与测试基线。

合同字段与治理规则 ​

  • sourceKey 是 Registry 中的公式/字段简式,不替代 Canonical 页的完整边界算法。
  • definitionVersion 变化前必须先修订 Canonical 页的公式与版本历史。
  • source-native-cost 与 source-native-count 不得在缺少设备公式时改名为物理功率、利用率或带宽。
  • 一个 metricID 只能由一个 published Canonical 指标页拥有;历史版本页必须保持 superseded。

全量合同表 ​

#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 / physFootprintphysical-footprint.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
6ios.process.memory.realprocessbytesdvt.sysmontap / memResidentSizeresident-map.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
7ios.process.memory.virtualprocessbytesdvt.sysmontap / memVirtualSizeraw-gauge.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
8ios.device.memory.availabledevicebytesdvt.sysmontap / System.(vmFreeCount+vmExtPageCount+vmPurgeableCount)*VMPageSizeBytesmemorystatus-available.approx-no-secluded.candidate.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
9ios.device.memory.freedevicebytesdvt.sysmontap / System.vmFreeCount*VMPageSizeBytesvm-free-pages.v1com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
10ios.process.thread.countprocesscountdvt.sysmontap / threadCount2com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
11ios.process.scheduler.context_switch_rateprocesscount-per-seconddvt.sysmontap / ctxSwitchcounter-rate.source-clock.exact-counter.candidate.v3com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
12ios.process.scheduler.interrupt_wakeup_rateprocesscount-per-seconddvt.sysmontap / intWakeupscounter-rate.source-clock.exact-counter.candidate.v3com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
13ios.process.disk.read_rateprocessbytes-per-seconddvt.sysmontap / diskBytesReadcounter-rate.source-clock.exact-counter.candidate.v3com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
14ios.process.disk.write_rateprocessbytes-per-seconddvt.sysmontap / diskBytesWrittencounter-rate.source-clock.exact-counter.candidate.v3com.apple.instruments.server.services.sysmontap / DTX;Sysmontap.create(provider, interval=500)PMD3 Native + Perfowl Metric Engine说明
15ios.device.network.send_ratedevicebytes-per-seconddvt.networking / ConnectionUpdateEvent.tx_bytes(1s 按时关窗/来源完成发表、扣除 time<0 初始快照字节;metadata-only缺值)network-window-rate.v7com.apple.instruments.server.services.networking / DTX;NetworkMonitor(provider)PMD3 Native + Perfowl window engine;仅快照窗 warmup 、无本窗源字段 missing -source说明
16ios.device.network.receive_ratedevicebytes-per-seconddvt.networking / ConnectionUpdateEvent.rx_bytes(1s 按时关窗/来源完成发表、扣除 time<0 初始快照字节;metadata-only缺值)network-window-rate.v7com.apple.instruments.server.services.networking / DTX;NetworkMonitor(provider)PMD3 Native + Perfowl window engine;仅快照窗 warmup、无本窗源字段 missing-source说明
17ios.process.network.send_rateprocessbytes-per-seconddvt.debug-gauge.network-statistics / net.tx.bytes.delta/timesource-interval-rate.candidate.v3com.apple.xcode.debug-gauge-data-providers.NetworkStatistics / DTX;ProcessNetworkStatistics.sampleAttributes:forPIDs:Perfowl Clean Adapter on PMD3 DTX 说明
18ios.process.network.receive_rateprocessbytes-per-seconddvt.debug-gauge.network-statistics / net.rx.bytes.delta/timesource-interval-rate.candidate.v3com.apple.xcode.debug-gauge-data-providers.NetworkStatistics / DTX;ProcessNetworkStatistics.sampleAttributes:forPIDs:Perfowl Clean Adapter on PMD3 DTX说明
19ios.foreground.fpsforeground-deviceframes-per-secondactivitytrace-framelifetime / count(presentationTimestamp in trailing 1 second)activitytrace-framelifetime-window-fps.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + DisplayPerformanceProjectorPMD3 transport + Perfowl Clean Adapter说明
20ios.foreground.gpu.renderer_utilizationforeground-devicepercentdvt.graphics / Renderer Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
21ios.foreground.gpu.tiler_utilizationforeground-devicepercentdvt.graphics / Tiler Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
22ios.foreground.gpu.device_utilizationforeground-devicepercentdvt.graphics / Device Utilization %2com.apple.instruments.server.services.graphics.opengl / DTX;Graphics(provider)PMD3 Native + Perfowl projection说明
23ios.frame.timeforeground-devicemillisecondsactivitytrace-framelifetime / (end_time - prev_frame) * timebase;iOS 26 FrameUpdate: (base_mct + FrameLifetimeInterval - FramePrevious) * timebaseactivitytrace-framelifetime-presentation-gap.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + FrameLifetimeDecoderPMD3 transport + Perfowl Clean Adapter说明
24ios.frame.fps.averageforeground-deviceframes-per-secondframe-pipeline / mean(per-second FPS)per-second-fps.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
25ios.frame.fps.at_least_18_percentforeground-devicepercentframe-pipeline / share of per-second FPS>=18per-second-fps.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
26ios.frame.fps.at_least_25_percentforeground-devicepercentframe-pipeline / share of per-second FPS>=25per-second-fps.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
27ios.frame.ftime_ge_100_percentforeground-devicepercentframe-pipeline / FTime>=100msframe-report.candidate.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
28ios.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说明
29ios.frame.drop_per_hourforeground-devicecount-per-hourframe-pipeline / count(per-second FPS[k-1]-FPS[k]>8)/(t_last-t_first)*3600per-second-fps.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
30ios.frame.med_range_percentforeground-devicepercentframe-pipeline / share of per-second FPS within median±20%per-second-fps.v1com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
31ios.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说明
32ios.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说明
33ios.frame.jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and 83.33ms, no Jank among previous 3jank.perfdog-dedup.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
34ios.frame.big_jank_per_10minforeground-devicecount-per-10-minutesframe-pipeline / previous3Mean*2 and 125ms, no Jank among previous 3big-jank.perfdog-dedup.v3com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
35ios.frame.stutter_percentforeground-devicepercentframe-pipeline / sum(counted Jank FTime)/durationstutter.jank-frame-time-share.v2com.apple.instruments.server.services.coreprofilesessiontap / DTX;CoreProfileSessionTap + RealtimeFrameDecoderPMD3 transport + Perfowl decoder/report说明
36ios.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说明
37ios.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说明
38ios.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说明
39ios.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说明
40ios.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说明
41ios.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说明
42ios.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说明
43ios.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说明
44ios.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说明
45ios.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说明
46ios.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说明
47ios.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说明
48ios.device.battery.temperature_rawdevicesource-nativediagnostics.ioregistry / Temperaturebattery-temperature-raw.v1com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
49ios.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说明
50ios.device.thermal.statusdeviceenum-rawdiagnostics.ioregistry / ThermalStatusthermal-status-enum.candidate.v2com.apple.mobile.diagnostics_relay / Lockdown;DiagnosticsService.get_battery()PMD3 Lockdown + Perfowl condition engine说明
51ios.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说明
52ios.process.startup.observed_running_msprocessmillisecondslifecycle-observer / observedRunning-launchRequestedstartup-observation.candidate.v2processcontrol + deviceinfo / DTX;ProcessControl.launch + runningProcessesPMD3 Native + Perfowl monotonic observation说明
53ios.process.startup.foreground_ready_msprocessmillisecondslifecycle-observer / observedForeground-launchRequestedstartup-observation.candidate.v2processcontrol + deviceinfo / DTX;ProcessControl.launch + runningProcessesPMD3 Native + Perfowl monotonic observation说明
54ios.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说明
55ios.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说明
56ios.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说明
57ios.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说明
58ios.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说明
59ios.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说明
60ios.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说明
61ios.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说明
62ios.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说明
63ios.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说明
64ios.frame.time.p95foreground-devicemillisecondsactivitytrace-framelifetime / rolling-p95(frameTimeMs, 10s)activitytrace-framelifetime-p95.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + DisplayPerformanceProjectorPMD3 transport + Perfowl Clean Adapter说明
65ios.display.refresh_rateforeground-devicehertzactivitytrace-framelifetime / refresh_interval converted through mach timebaseactivitytrace-framelifetime-refresh-rate.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + DisplayPerformanceProjectorPMD3 transport + Perfowl Clean Adapter说明
66ios.frame.pacing_jitterforeground-devicemillisecondsactivitytrace-framelifetime / P95(frameTimeMs)-P50(frameTimeMs), rolling 10sactivitytrace-framelifetime-jitter.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + DisplayPerformanceProjectorPMD3 transport + Perfowl Clean Adapter说明
67ios.frame.hitch_time_ratioforeground-devicemilliseconds-per-secondframe-pipeline / sum(hitch)/animation time; hitch = present - max(prevPresent+Vx, begin+steady lifetime) when >= V/2perfowl-hitch.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + HitchAccumulatorPMD3 transport + Perfowl decoder/report说明
68ios.frame.hitch_countforeground-devicecountframe-pipeline / count(hitch > 0) during animationperfowl-hitch.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + HitchAccumulatorPMD3 transport + Perfowl decoder/report说明
69ios.frame.hitch_maxforeground-devicemillisecondsframe-pipeline / max(hitch)perfowl-hitch.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + HitchAccumulatorPMD3 transport + Perfowl decoder/report说明
70ios.frame.animation_timeforeground-devicesecondsframe-pipeline / sum(present - prevPresent) over continuous and paced framesperfowl-hitch.v1com.apple.instruments.server.services.activitytracetap / DTX;ActivityTraceFrameLifetimeRawAdapter + HitchAccumulatorPMD3 transport + Perfowl decoder/report说明

自动一致性门禁 ​

python3 site/scripts/metric-knowledge-gate.py 会检查:Registry 总数与唯一性、JSON 合同逐字段一致、Canonical metricID 唯一覆盖、十要素关键词、侧栏唯一注册、知识库总览链接,以及本表对当前 Registry metricID 的逐项唯一列举。npm run build 的前置步骤会自动执行该门禁。

版本历史 ​

版本日期变更来源
v52026-11-04新增卡顿 4 项(卡顿时间比、卡顿次数、最长卡顿、动画时长,perfowl-hitch.v1),Registry 为 70 项卡顿时间比
v42026-11-02Jank/BigJank 前 3 帧去重、Stutter 改为 Jank 帧耗时占比、FPS 类 5 项改按每秒 FPS 序列(含 Drop 映射);FTime 补 iOS 26 FrameUpdate 公式PerfDog 口径修正 · iOS 26 帧来源
v32026-09-17补齐 FrameTime P95 / Display Refresh Rate / Frame Pacing Jitter 三项 Display Performance metricID 的 Registry、Source Contract 与 Canonical 归属,Registry 收敛为 66 项(R7-Fix-A)Display Performance
v22026-09-15Memory Contract v2 去除 Xcode/Resident 重复 alias、增加 Free Memory,Registry 收敛为 63 项Memory 指标
v12026-09-08建立 64 项字段级镜像、服务/命令谱系、Canonical 归属与构建前漂移门禁P0 知识库深化结果

Perfowl · Performance Observer