implP4E4implemented · gate-open2026-09-04

CORE-4 进程网络、Energy 与 CoreProfile Raw Adapter

开发方案(先于代码)

本阶段把 py-ios-device 冻结源码中已确认的 Channel/selector 接到 pymobiledevice3 11.3.1 的唯一 DvtProvider 上,不引入 py-ios-device runtime 或第二个 DTX socket。

能力Channel / selector实施边界
Process NetworkNetworkStatisticsstartSamplingForPIDs: / sampleAttributes:forPIDs: / stopSamplingForPIDs:PID scope raw;不复用 Device Network,不先猜字段
EnergyEnergyMonitor 上游 wrapper;相同 start/sample/stop 语义PID scope raw;数值含义未校准前不派生 Energy 指标
CoreProfilecoreprofilesessiontap;setConfig/start/stop保存原始 chunk、kind、长度、Mach numer/denom/absolute time;不直接发布 FPS/Jank/Lifecycle

原始字段、单位和缺失语义

选择与回滚

候选 CLI 增加显式 Adapter 白名单;默认仍只启动 CORE-3 已验收三路。深度 Adapter 必须显式选择,任一错误逆序关闭并不生成 completed manifest。移除选择即可回滚。

公式状态

本阶段只有 raw capture,没有进入 PerformanceModels.swift Registry 的新 metricID,因此不发布指标页、不接 UI/报告。未来 Process Network B/s、Energy、逐帧/Jank 公式必须在获得字段形态和校准证据后另行先入档。

实施结果

验收数据

单元、构建与发布候选

验证结果等级
Python 3.12 / 系统 Python各 51/51E2
深度 Adapter fake streamprocess scope、base64、Mach timebase、null→missingE2
候选二进制重建x86_64 build complete;9/9 import;codesign strict 通过E2/E3

当前设备 E4

采集匿名结果结论
Process Network + Energy 源码复测4 秒,Network 4、Energy 3;Network 14 个字段、Energy 18 个字段;drop 0、严格回放通过E4 raw candidate
冻结二进制 gauges3 秒,Network 3、Energy 3;全部携带 verified target/generation 6;drop 0E4 raw candidate
CoreProfile 源码复测4 秒,19 chunks、约 92.8 MB;binary 12、bplist 7;timebase 完整E4 raw candidate
冻结二进制 CoreProfile2 秒,7 chunks、约 19.1 MB;binary 4、bplist 3;单 chunk 最大约 15.6 MB;generation 7、drop 0E4 raw candidate

Process Network 本轮目标没有产生网络流量,字段中 delta/累计值保持真实 0;这证明 PID scope schema 可读取,不证明 Send/Recv 数值校准。Energy 出现负 sentinel 和动态 cost,未确认单位,保持 raw。CoreProfile 吞吐很高,只允许显式诊断模式;尚未实现 chunk 解码与逐帧事件,不能据此发布 FrameTime/Jank。

阶段结论

CORE-4 的三类深度 raw Adapter 已在冻结候选二进制和当前 iOS 16 设备达到 E4。它们完成的是原始能力基座,不是同名业务指标:Process Network rate、Energy 单位和 CoreProfile 派生算法仍需后续校准/decoder。

冻结归档:CORE-4 深度 Raw Adapter 实施与验收