基准测试
性能数字该怎么读 —— 基准矩阵、噪声控制协议,以及下结论的规矩。
状态: 骨架页 —— 先冒烟跑,再全量实测。未测过的数字绝不写成结论。 今天
bench/包还是空壳;下面的 harness 契约就是它要实现的东西。
基准矩阵
- 六个尺寸档:empty / 64 B / 1 KiB / 64 KiB / 1 MiB / 16 MiB
- 操作:encode / decode / copy
- 后端:native / wasm-gc(wasm-gc 只覆盖纯核心)
- 端到端:吞吐 + P50/P90/P99(NSQ 式分位数)
噪声控制协议(每条基准必附)
- 每个配置 ≥ 10 轮,报 mean±σ(
@bench.Tharness 契约)。 - σ/mean > 3% 该轮作废(关掉后台负载后复测)。
- 差异 < 5% 不下优化结论 —— 与 04-quality 的「≤5%」判定线互为镜像,防噪声误判。
- Windows:电源计划 = 高性能、接电、关闭节能;把测试机型号写进环境栏。
- 微基准按 A/B 测试对待:±1% 级取舍必须先算显著性。
度量门(decode 三断言)
三断言定义 decode 性能门,各按各的口径判:
- 帧层 decode 保持在 65–80 ns 带内。 该带来自 2026-09-30 帧层基线(空载、按噪声协议 10 轮)。它的适用域只有帧层 —— 入档的也只是帧层数。
- decode 成本与消息大小无关。 零拷贝性质:decode 是借用不是复制,所以这一行在各尺寸档上是平的。
- 全路径 decode 对 decode+copy:如实出数,不下结论。 全路径数字落在微秒级,逐字段分配大头记入性能备忘。v0 不排优化工作;数字作为测量值存在,不是判词。
条目模板
markdown
## BM-N:<名称>
环境:<CPU/内存/磁盘/OS/电源> | 版本:<commit>
噪声控制:<轮数> | mean±σ | σ 判读
方法:<命令 + 参数 + 时长>
结果表:<P50/P90/P99/吞吐>
对照:<上一版或竞品,同条件>
结论:≤ 3 句;差异 < 5% 不下判断