外观
深度 Raw 采集源质量与发布语义
在无侵入性能采集中,从底层原始二进制事件流(Raw Events)到最终呈现给测试工程师的指标曲线,经历了解析、时序对齐、滤波与差分等一系列关键流水线。
本页系统阐述网络统计、软件能耗与内核 CoreProfile 逐帧等“深度数据源”的发布准则,确保每一项指标在交付给 QA 团队时都具备不可辩驳的确定性。
1. 深度 Raw 数据源矩阵
| 原始数据源 | 承载指标 (metricID) | 作用域 (Scope ) | 原始数据形态 | 质量提升门禁 |
|---|---|---|---|---|
| Process Network | ios.process.network.send_rateios.process.network.receive_rate | [进程级 · 目标专属] | 系统 Debug Gauge Socket 统计 | 仅在 PID、时钟序列与窗口严格单调递增时发布 |
| Energy Gauge | ios.process.energy.*_cost (七项) | [进程级 · 目标专属] | 官方 Debug Gauge 相对能耗打分 | 保留系统原生分值,绝不伪造为物理瓦特或焦耳 |
| CoreProfile 逐帧 | ios.frame.timeios.frame.* (全套帧性能) | [前台设备级 · 屏幕呈现] | 内核 kdebug 纳秒级呈现事件流 | 精确 DebugID 匹配与时基换算通过后方发布 |
2. 实时缓冲、有界队列与丢失防护
为了在长达数小时的高负载压测中保持 Mac 客户端的极轻量资源占用,Perfowl 设计了严格的有界缓冲与写盘策略:
- 有界队列防爆内存: CoreProfile 内核事件流在内存中维持严格的有界环形缓冲区(Ring Buffer)。在极端高频事件冲击下,确保不会因内存无界膨胀而拖慢 Mac 宿主机。
- 丢失显式声明 (Drop Declaration): 若因系统性能极端恶化导致底层出现偶发丢包,Perfowl 立即将事件标记为
source-loss或partial,并在报告中显式透出丢失标记数,绝不使用静默插值或假数据掩盖丢包。 - 不可变追加写盘 (Append-Only Raw): 采集到的所有原始事件以流式追加方式写入本地 Session 文件,并定期触发安全持久化,生成唯一的 SHA-256 校验哈希,保证测试资产具备法律与审计级别的可追溯性。
3. 版本历史
| 版本 | 日期 | 修订要点 |
|---|---|---|
| v5 (当前) | 2026-09-15 | 全面转向性能测试质量保障视角:去除内部工单编号,阐明深度 Raw 数据源的发布准则与有界缓冲设计。 |
| v4 | 2026-09-08 | 规范 CoreProfile 环形缓冲区与写盘刷新机制。 |
| v1 | 2026-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公式、既有历史数字或来源质量阈值。