Goのbenchstat流儀をRustに持ち込んだbenchfmt.rs、Go対Rustの性能比較も実現

Benchfmt.rs: Bringing Go's benchmarking and benchstat workflow to Rust

Goのbenchstat流儀をRustに持ち込んだbenchfmt.rs、Go対Rustの性能比較も実現

PrometheusやThanosでGoの性能チューニングに慣れてきた筆者が、Rustのマイクロベンチマーク環境に不足を感じてbenchfmt.rsを作った。依存ゼロのベンチマークランナーで、スレッドローカルなヒープ割り当て計測、pprof連携、Goのgo test -benchと同じCLIフラグを備える。Criterionやlibtestの出力をGoのbenchfmt形式に変換できるため、既存のベンチマークを書き換えずにbenchstatでGoとRustを横並び比較できる。varintとRemote Write 2.0デコードで実際に比較している。

Criterionは単一のcargo benchコマンドで信頼区間やHTMLプロットが得られる点では便利だが、go testとbenchstatと比べると四つの設計上の選択が邪魔をする。

この日のほかの記事

2026-11-04