Rust 补上基准测试的统计对比:benchfmt.rs 开源,结果可直接用 Go 的 benchstat
作者:许棠
11 月 4 日 bwplotka.dev 博主开源 benchfmt.rs:零依赖 Rust 基准测试运行器,外加把 Criterion、libtest 结果转成 Go 基准格式的转换器,输出能直接喂给 Go 官方统计工具 benchstat。

11 月 4 日,bwplotka.dev 博主开源 benchfmt.rs——一个零依赖的 Rust 基准测试运行器,外加把 Criterion、libtest 结果转成 Go 基准格式的转换器,输出能直接喂给 Go 官方统计工具 benchstat 。
先交代两个名词。基准测试就是把一段代码反复跑,量它有多快;但机器噪声会让同样的代码每次差上几个百分点,「快了 3%」肉眼判不了真假,benchstat 靠多轮独立计时加 Mann-Whitney U 检验,告诉你差异是真提升还是误差 。

benchfmt.rs 补的正是 Rust 这条链:运行器自带每操作堆分配统计(多少字节、几次分配)和 pprof 剖析,命令行旗标照搬 go test -bench;已有 Criterion 的项目不用改代码,转一道就能进 benchstat。作者在同一台机器上让 Go、Rust 解码同一批协议数据:Rust 解 varint 快 37.16%,解 Remote Write 2.0 快 13.37%–15.72%,p=0.002 。
能用,但先别急着换:仓库 Apache-2.0,cargo install --git 可装,不过示例全走 GitHub 依赖,暂未见 crates.io 上架记录 ;项目刚发布,HN 上 13 分 2 条评论,反馈寥寥 。作者也承认 Criterion 自带置信区间和图表,缺的只是跨文件、跨语言的对比表 ——所以它是补齐流水线,不是替代。
作者:许棠
转载说明
本文根据以下公开资料整理,原文及配图出处见下方。
- [S1] Benchfmt.rs: Bringing Go's benchmarking and benchstat workflow to Rust
- [S2] benchfmt.rs: Bringing Go's Benchmarking and benchstat Workflow to Rust
- [S3] GitHub - bwplotka/benchfmt.rs: golang.org/x/perf/benchfmt but for Rust. Use
benchstaton Rust benchmarking results! - 配图 1:来源:@bwplotka(图片署名见原文) · 图片出处
- 配图 2:来源:@bwplotka(图片署名见原文) · 图片出处
评论 0
还没有评论,来抢沙发。