# 可复现基准

执行：

```sh
moon run examples/benchmark --target js --release
```

也可用 wasm-gc/wasm，或在具备 C 编译器的机器上用 native。输出 CSV 文本：每个场景预热一次、再运行五次并报告算术平均微秒。用重定向保存本机结果即可；数值依赖 CPU、运行时、工具链、GC 和当前负载，不跨机器直接比较。

固定场景为 1,000/10,000 个 ID，各边变化0/10/100个、seed=1/17，共12行。源集合是0..n-1，目标是d..n+d-1，因此对称差为2d。容量规划估计使用2d，不包含重试；失败的场景会终止程序，不输出被误标为成功的计时行。

各阶段分别测量：

- `build_two_us`：从已经准备好的有序 ID 数组迭代器构建双方快照，包含两份摘要分配，不包含真实数据库 IO。
- `encode_decode_us`：目标摘要编码并由接收方解码，包含 CRC 与结构校验，不包含网络。
- `reconcile_us`：摘要相减、peeling、结果排序和指纹验证。
- `apply_us`：对已准备的精确本地 Inventory 应用计划并返回新 Inventory，包含副本构建和内部核验。

`received_bytes` 只记录目标快照 MRCL 帧长度，不包含请求、协议封装或实际对象数据。最终集合与精确目标集合的断言在计时外执行；场景输入数组以及 apply 使用的源 Map 构建也在对应计时外。这里只提供小规模微基准，不是服务端负载测试、成功率统计或峰值内存测量。
