9月11日、Rust公式ブログが「Rust compiler performance survey 2025 results」と題した記事を公開した。この記事では、Rustのビルド性能に関する初の大規模アンケートの結果と、今後の改善に向けた取り組みについて詳しく紹介されている。以下に、その内容を紹介する。

アンケートの背景
2025年6月に初めて実施された「Rust Compiler Performance Survey」は、Rustのビルド性能に関する開発者の最大の課題を把握する目的で行われ、3,700件を超える回答が寄せられた。回答者の多くは、自らのワークフローや直面する問題を自由記述で説明しており、Rustチームは今後も毎年調査を継続し、長期的な傾向を追う方針を示している。
全体満足度
回答者には、自分のビルド性能に対する満足度を0(最悪)〜10(最良)で評価してもらった。平均は6、最頻値は7であった。

自由回答の内容からは、ビルド性能に対する体験のばらつきが大きいことが確認できた。Rustビルドは他の言語と比べて遅いとする意見がある一方で、C++に比べて優れているという声もあった。GoやZigに比べると遅いとする意見も根強い。また、Rustを使わなくなった人の約45%が「コンパイル時間の長さ」を理由の一つとして挙げている。
重要なワークフロー
調査では、Rust開発者の生産性に影響を与えるワークフローを特定するため、よく使われるであろう作業を質問した。その結果、以下の3つが特に課題として浮かび上がった。
- インクリメンタルリビルド(小さな変更後の再ビルド)
- 型チェック(
cargo check
やエディタでのインライン注釈) - クリーンビルド(CIを含む)

インクリメンタルリビルド
自由回答でもっとも多かった不満は、ちょっとした変更後の再ビルド待ち時間だった。ボトルネックとして次の3つが挙げられる。
- ワークスペース全体に不要な再ビルドが波及
- リンクフェーズが遅い(既定リンカのLLD移行が進行中)
- 単一クレートの増分コンパイルが最適化不足(プロシージャルマクロ展開キャッシュの改善が進行中)

55%が「10秒以上かかる」と回答しており、プロジェクトの規模や依存数に比例して待ち時間が増える傾向が明らかになった。
型チェックとIDE性能
約60%がcargo check
を日常的に使用している。課題としては以下の点が指摘された。
cargo check
とcargo build
のキャッシュが共有されないため重複コンパイルが発生- エディタ内のエラー注釈の待ち時間を33%が「大きな阻害要因」と回答
- Rust Analyzerの性能とメモリ使用量が課題

Rust Analyzerはキャッシュ最適化やPGOビルド導入により15〜20%の性能改善が確認され、新しいトレイトソルバの統合も進行している。
クリーンビルドとCI
約20%が「クリーンビルドが大きな阻害要因」と回答。CIでは1,495名が利用しており、そのうち25%が性能を問題視したが、36%はキャッシュを利用していなかった。target
ディレクトリの肥大化が背景にあると見られる。

hint-mostly-unused
オプションや-Zembed-metadata
オプションの導入、さらにはtarget
ディレクトリのガーベジコレクション機能が改善策として挙げられている。
デバッグ情報(debuginfo)
dev
プロファイルではデフォルトでフルdebuginfoが生成されるが、これがビルド性能に大きな影響を与える。line-tables-only
に変更すれば2〜30%の改善が見込め、完全無効化ではさらに効果が大きい。
ただしデバッガをほとんど使わない層でも「既定でdebuginfoが欲しい」と回答する人が多く、既定の扱いを変えることは難しい状況である。Cargoチームはデフォルトを変更するか、新たに「デバッグ用プロファイル」を追加するかを検討している。

ビルド性能改善の工夫
回答からは次のような工夫が効果的であることが分かった。
- 依存関係や機能フラグの削減
- 大規模クレートの分割
- 代替リンカ(moldやLLD)の利用

ソースコードを変更せずにビルドパフォーマンスを向上させる、最も一般的な方法は代替リンカの使用だ。特にMoldリンカーとLLDリンカーは非常に人気があるようだ。

次期Rustではx86_64-unknown-linux-gnu
でLLDがデフォルト化され、リンク時間が短縮される予定だ。さらに、Cargo Bookには公式の「ビルド性能最適化ガイド」が追加される計画である。
ビルドが遅い理由を理解する
ビルドのプロファイリングツールを利用する開発者は少なく、既存のツールは扱いにくいとの声が多い。改善策としてcargo build --timings
にリンク時間表示を追加する試みが始まっている。将来的には「どのコードが再コンパイルされたか」「どのマクロが最も時間を要するか」といった情報を直感的に提示する新ツールが構想されている。
今後の展望
今後の改善計画として、以下が挙げられている。
- Craneliftバックエンドの本番投入
- コンパイラフロントエンドの並列化
- 不要なワークスペース再ビルドの回避
- インクリメンタルリンクの実現
ただし、こうした大規模な変更には多大な労力と専門知識が必要であり、進捗には時間を要する。Rustコンパイラのメンテナンスは多くがボランティアに支えられているため、人的リソースと資金面の制約も課題となっている。
詳細はRust compiler performance survey 2025 resultsを参照していただきたい。