---
type: devlog
kind: validation
title: R3 存储格式 80 轮回放与一致性验证
date: 2026-09-09
status: partial
stage: P4
evidence: E2
---

# R3 存储格式 80 轮回放与一致性验证

## 结论与范围

R3 在途代码完成两份留存 Raw、新旧格式各 20 轮,共 80 轮 E2 回放。六类产物语义哈希一致。大样本外置 chunk 格式显著降低 finalizer 耗时;这不是旧提交与新提交的代码 A/B,更不是点击停止到完整报告的 E4 验收。

本批只提交基准工具与验证记录。被测产品代码及原生字节测试仍为未提交在途改动,未进入 Build 39;完整 Python 源文件 SHA-256 已随证据冻结,验收结果不得直接归属于本批文档提交对应的产品树。

## 固定环境与方法

- Python 3.12.3、pymobiledevice3 11.3.1、x86_64。
- 每份样本各 20 轮 AB/BA 交替,新进程串行执行,并发 1,单轮超时 120 秒。
- 每轮只复制 manifest/Raw/blob 到独立临时目录,不复制任何已派生缓存,不修改输入会话。复制不计入 finalizer 时间;OS 缓存可能为热。
- 关键路径为全量校验、指标派生、逐帧、报告、启动与自校准。复杂度仍 O(Raw 字节数 + 事件数),解析对象仍驻留,并非有界增量终态。
- 单轮目标沿用 ≤2 秒作 finalizer 子集检查;完整产品合同还包括点击、drain、持久化、索引与报告 ready,不据本批关闭。
- 六类比较对象:metrics-derived、frame-events、frame-report、report-stat、startup-report、launch-spans。仅 startup-report 排除因存储字节改变而变化的 sourceRawSHA256;其他字段不忽略。不是全部交付文件逐字节相同。

## 逐轮汇总(E2)

| 样本/格式 | 轮数 | 中位 ms | P95 ms | 最大 ms | >2秒 | CPU中位 ms | 进程峰值 MiB |
| --- | --- | --- | --- | --- | --- | --- | --- |
| A/legacy | 20 | 570.810 | 599.020 | 668.167 | 0/20 | 567.825 | 114.14 |
| A/external | 20 | 579.976 | 628.983 | 657.804 | 0/20 | 575.561 | 114.15 |
| B/legacy | 20 | 2556.621 | 2736.737 | 2967.406 | 20/20 | 2550.032 | 444.20 |
| B/external | 20 | 625.108 | 663.042 | 674.451 | 0/20 | 621.851 | 233.42 |

样本 A 原始约 18.54 MB;外置格式耗时中位增加约 1.6%,不宣称所有负载均加速。样本 B 原始约 267.49 MB,外置索引与 blob 共约 201.68 MB;中位耗时降低约 75.5%,进程峰值 RSS 降低约 47.5%。

吞吐为逻辑输入字节/finalizer 耗时,不是磁盘物理吞吐或持续采集服务率。样本 B legacy/external 中位约 104.63/322.64 MB/s;各格式输入字节数不同。RSS 为进程生命周期高水位;OS block 计数受缓存影响,逻辑读写量不代替物理 I/O 峰值。未测主线程、采集首响应、30/60 分钟稳态资源和 1 GB 最差输入。

## 自动测试与回归发现

首次全量为 246/247:预热测试沿用 base64 膨胀假设,但在途源已使用 native bytes。配套在途测试改为真实 30×10 MiB 非零字节输入;32 MiB 缓存应保留末尾三个 chunk,覆盖淘汰 27 个、270 MiB。预算不增加;不再用小型 byteLength 占位宣称真实压力验证。复测 247/247(E2,1.343 秒),产品代码本轮未改。

测试修改依赖在途产品格式,暂不单独提交至旧产品树;本批基准运行时产品源哈希前后一致。

## 复现与证据

基准入口为仓库 MacApp/scripts/benchmark-r3-replay.py;参数 --pair 接受旧格式与外置格式的会话目录,可重复指定;--rounds 默认为 20,--output 指定匿名 JSON。输入必须为可信的本地测试副本。每轮派生写入独立临时目录,结束后清理,输入保持只读。

[逐轮匿名证据](/archive/validation/evidence/perfowl-r3-format-replay-20-rounds-2026-09-09.json) · [已批准方案](/devlog/p4-capture-quality-efficiency-repair-plan)

## 下一阶段与整体进度

R0/R1/R2 局部实施、R3 验证推进,R4~R6 未关闭。下一步审查并完成 durable checkpoint、seal 消费一致性、满盘/崩溃/断连恢复及在线派生对采集延迟的影响,再冻结产品源码与测试共同提交、打包验证。真实规模至少补齐 1 GB 和长会话矩阵。

本批不变更指标公式、scope、单位、支持数量或质量语义,不升级任何指标为 E4。Build 39 仍为既有内部包;Developer ID、公证、stapling、Gatekeeper 与分发法务门禁继续开放。

## 本批补充检查(E2)

真实 300 MiB 预热压力用例独立重复 20/20,通过 32 MiB 保留预算与显式淘汰断言。站点构建通过,64 项 Registry 合同检查通过,无死链报错;仍有 bundle 大小警告,不视为主线程或页面性能达标。