Skip to content

深度 Raw 采集源质量与发布语义 ​

在无侵入性能采集中,从底层原始二进制事件流(Raw Events)到最终呈现给测试工程师的指标曲线,经历了解析、时序对齐、滤波与差分等一系列关键流水线。

本页系统阐述网络统计、软件能耗与内核 CoreProfile 逐帧等“深度数据源”的发布准则,确保每一项指标在交付给 QA 团队时都具备不可辩驳的确定性。


1. 深度 Raw 数据源矩阵 ​

原始数据源承载指标 (metricID)作用域 (Scope )原始数据形态质量提升门禁
Process Networkios.process.network.send_rate
ios.process.network.receive_rate
[进程级 · 目标专属]系统 Debug Gauge Socket 统计仅在 PID、时钟序列与窗口严格单调递增时发布
Energy Gaugeios.process.energy.*_cost (七项)[进程级 · 目标专属]官方 Debug Gauge 相对能耗打分保留系统原生分值,绝不伪造为物理瓦特或焦耳
CoreProfile 逐帧ios.frame.time
ios.frame.* (全套帧性能)
[前台设备级 · 屏幕呈现]内核 kdebug 纳秒级呈现事件流精确 DebugID 匹配与时基换算通过后方发布

2. 实时缓冲、有界队列与丢失防护 ​

为了在长达数小时的高负载压测中保持 Mac 客户端的极轻量资源占用,Perfowl 设计了严格的有界缓冲与写盘策略:

  1. 有界队列防爆内存: CoreProfile 内核事件流在内存中维持严格的有界环形缓冲区(Ring Buffer)。在极端高频事件冲击下,确保不会因内存无界膨胀而拖慢 Mac 宿主机。
  2. 丢失显式声明 (Drop Declaration): 若因系统性能极端恶化导致底层出现偶发丢包,Perfowl 立即将事件标记为 source-loss 或 partial,并在报告中显式透出丢失标记数,绝不使用静默插值或假数据掩盖丢包。
  3. 不可变追加写盘 (Append-Only Raw): 采集到的所有原始事件以流式追加方式写入本地 Session 文件,并定期触发安全持久化,生成唯一的 SHA-256 校验哈希,保证测试资产具备法律与审计级别的可追溯性。

3. 版本历史 ​

版本日期修订要点
v5 (当前)2026-09-15全面转向性能测试质量保障视角:去除内部工单编号,阐明深度 Raw 数据源的发布准则与有界缓冲设计。
v42026-09-08规范 CoreProfile 环形缓冲区与写盘刷新机制。
v12026-09-04首次发布深度 Raw 采集源规范与质量门禁。

2026-10-21 · 原字节保全与停止尾Raw守恒 ​

JSON语义一致不等于SHA一致。 发送器可能使用紧凑JSON,而本机审计文件为格式化JSON;用后者的文件SHA比对手机原件会误报。预期原字节SHA应在发送前持久化;读取源文件时保留原字节、双读稳定并核同副本,不把手机源重新格式化后替换。复现方法是对同一对象紧凑和格式化编码分别求SHA,再与发送前意图比较;不得根据失败后的源内容反向改期望或覆盖旧失败。当前E4实测141原件核同,字节规则与九项控制见来源批次。该方法适用于有明确序列化/发送意图的原件,不意味着所有JSON应采用同一编码。

晚于最后发表cut的Raw需要单独记账。 它不一定属于任何已发表样本,不能补造末采样或删除原件来强制尾数为0。核对已消费Raw数+保留未消费尾Raw数=全部Raw,并验证每条尾的接收/消费时序、来源/代际/display/timebase、原生端点与质量/空值。当前P95单一目标/display实测一条末cut后103.260208ms的source-gap,原生长区间按>12倍规则保持未知/null;全部831个已发表样本原生整数算术不变。诊断refreshMultiple按既有三位取整核对,质量阈值继续用未取整原生值,不能让显示取整改变边界。未支持的尾类型仍拒绝,不将本设备案例外推所有来源/重连场景。E4原件及全部工具失败见来源批次。

版本历史增量:2026-10-21,补充发送原字节与格式化审计文件的区分、停止尾Raw显式守恒及诊断取整边界;未改P95公式、既有历史数字或来源质量阈值。

Perfowl · Performance Observer