cargo-chronoscope - Cargoビルド性能オブザーバー(TUI + GitHub Action)
(github.com/ymw0407)Rustプロジェクトのcargo build時間がPRごとに少しずつ増えていくものの、どのPRが原因なのか追跡するのが面倒で作りました。
cargo-chronoscopeはcargoのJSONイベントストリーム(--message-format=json-render-diagnostics)を消費し、すべてのビルドをローカルのSQLite DBに記録して、4つの方法で分析するCLIです。
4つのサブコマンド
record— ビルド1回分をそのまま記録watch— ビルド中のratatuiベースTUIダッシュボード。アクティブなコンパイルごとのelapsed time、異常分類(通常より遅い/速い/正常)、CPU・メモリのリアルタイム表示。 (デモGIFはREADMEの最上部にあります。)ls— 最近のビルド一覧diff <before> <after>— 2つのビルド間のcrateごとの変動量 + critical path比較
cargo --timingsとの違い
組み込みのcargo --timingsは1回のビルドタイムラインです。cargo-chronoscopeはビルド間の比較と回帰検知に特化しており、過去ビルドの平均±2σをベースラインとして現在のビルドを自動分類します。
GitHub Action統合
- uses: ymw0407/cargo-chronoscope@action-v1
1行でPRごとにビルド時間diffをstickyコメントとして自動投稿します。fork PRにも対応しています(workflow_runパターン)。
インストール
cargo install cargo-chronoscope
現在の状態
- v0.1.7、crates.io登録済み
- Rust公式 2025 H2 "Cargo build analysis"目標の外部ツールトラックに該当
- GitHub: https://github.com/ymw0407/cargo-chronoscope
フィードバック/Issue歓迎です。
まだコメントはありません。