外观
Network Send / Recv 指标说明 v2
定义与 Registry
| 定义 | metricID | scope | unit | 来源字段 |
|---|---|---|---|---|
| 整机发送速率 | ios.device.network.send_rate | device | bytes-per-second | ConnectionUpdateEvent.tx_bytes |
| 整机接收速率 | ios.device.network.receive_rate | device | bytes-per-second | ConnectionUpdateEvent.rx_bytes |
| 目标进程发送速率 | ios.process.network.send_rate | process | bytes-per-second | net.tx.bytes.delta + time |
| 目标进程接收速率 | ios.process.network.receive_rate | process | bytes-per-second | net.rx.bytes.delta + time |
四个 metricID 均来自 PerformanceModels.swift 当前 Registry。界面可换算显示 KB/s 或 MB/s,存储与报告标准单位固定为 bytes-per-second。
计算方式
整机网络
network-window-rate.v1:在相邻 sysmontap 进程采样窗内累加 DVT Networking 连接事件的 interval bytes,再除以 host monotonic 经过秒数。窗口是整机 scope,不与目标 PID 混合。
进程网络
source-interval-rate.candidate.v2:
text
rate[n] = net.{tx|rx}.bytes.delta[n]
/ (sourceTime[n] - sourceTime[n-1])sourceTime 是同一 PID + generation 回包中 NSDate 源时钟,raw 包显式保存 sourceTimestampCocoaSeconds。旧录制没有源时钟时才使用 host monotonic 回放,并降级标记为 candidate-host-window。
质量语义
| quality | 含义 |
|---|---|
candidate | 来源字段、scope、源时钟与公式均成立;外部数值对齐尚未执行 |
candidate-host-window | 旧录制无源时钟,仅用 host monotonic 重放 |
warmup | 同 PID + generation 的第一个真实 PID 回包;不输出数值 |
missing | 空 acknowledgement、缺 delta 或无可识别 PID 行 |
invalid-window | 选定的时钟不递增;不输出数值 |
真实 0 delta 是合法数值 0,与 null / missing 严格分离。进程重启后 generation 变更,窗口重新 warmup,不跨 PID 差分。
当前校准状态
- device 与 process 两组 scope 已有 iOS 17/18 真机源观测,值与质量语义进入 Perfowl 自校准报告(E4 candidate)。
- iOS 18 Wi-Fi 曾观测到源时钟大窗口;v2 用源时钟修正 host 收包窗口造成的人工 GB/s 峰值。
- L4 外部工具同窗数值对齐按用户决定暂不进行,因此不使用“已对齐 PerfDog”结论。
版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| v2 | 2026-09-06 | 补全进程级双指标;新增 Debug Gauge 源时钟窗口、host 回退质量和真机异常根因 |
| v1 | 2026-09-04 | 首次发布整机 Send / Recv 口径 |
修订来源:P2 进程网络源时钟修订方案。