高速Rustビルド:10分未満CIの秘訣
2025-06-20
Rustのコンパイルが遅いというのはよくある不満ですが、筆者は、ほとんどのRustプロジェクトは本来よりもはるかに遅い速度でコンパイルしていると主張しています。rust-analyzer(20万行のコードと100万行の依存関係)を例に、GitHub Actionsで8分のCIパイプラインを実現しています。この記事では、CIキャッシングの活用、CIタスクの分割、インクリメンタルコンパイルとデバッグ情報の無効化、依存関係の削減、`cargo build -Z timings`を使ったプロファイリング、そしてcrate境界での過剰なジェネリックインスタンス化を避けるためのコード設計といった、ビルド時間最適化の戦略を詳細に説明しています。筆者は、ビルド時間が開発者の生産性に与える影響を強調し、大規模なRustプロジェクトのCI時間を妥当な範囲(例えば約10分)に維持するために、ビルド時間を定期的に最適化することを推奨しています。
開発
ビルド最適化