ベンチマークの大半が改善を示す
コンパイラ開発の貢献者であるニコラス・ネザーコートがプロジェクトのベンチマークデータを分析したところ、2026年7月下旬から9月下旬にかけて、Rustコンパイラの性能は追跡対象のワークロードの大半で改善した。この2カ月間における実経過時間の短縮率は平均4.57%だった。629件のベンチマーク測定のうち、555件が改善し、74件が悪化した。
この結果は、単一の決定的な最適化ではなく、多数の変更から生まれた。コンパイラをLLVM 23に更新したことで、ベンチマーク全体の平均実経過時間は1.2%短縮した。RustのリントツールであるClippyにプロファイルに基づく最適化を有効にした結果、Clippyのワークロードの大半が改善し、最も効果が大きかったケースでは実経過時間が18%短縮した。
ほかのパッチは、繰り返されるメモリ割り当て、特殊化グラフの構築、インクリメンタルコンパイルのデータを対象とした。実装の扱いに関するある変更は、全ベンチマークでサイクル数を平均1.58%削減した。また、インクリメンタルデータの読み込みを最適化した変更は、影響のあったテストで命令数を最大6%削減した。頻繁に実行されるトレイトソルバーの選択処理で動的ディスパッチを置き換えたことも、複数のワークロードで比較的小幅な改善につながった。
新しい仕組みがもたらす新たなコスト
こうした改善が進む一方、RustのNightlyコンパイラでは、一部のコードでは依然として処理が遅くなる2つの大きな構成要素が有効化された。より精密な借用チェッカーであるPolonius Alphaは、従来のチェッカーが拒否していた妥当なプログラムを受け入れられるが、一部のケースでは測定可能な処理負荷が加わる。生存性の計算の一部を必要になるまで遅延させることで、広く使われているserdeクレートでは命令数が約3%から5%減少し、ほかでもより小さな効果が見られた。
新しいトレイトソルバーにも、性能面で突出して遅いケースがある。そうしたケースへの取り組みにより、特定のクレートで大幅な削減が実現し、別々の例で50%、25%、15%の改善が報告された。これらの局所的な成果はコンパイラ全体の平均性能を表すものではないが、極端に処理負荷の高いワークロードが、アルゴリズムやデータ構造の変更によってどう改善し得るかを示している。
際立った例の1つは、cranelift-codegenクレート内の、18,000を超える基本ブロックを含む関数だった。コンパイラのデータフロー解析で使われる制御フローの走査方法を見直すと、ある効果処理ルーチンの呼び出し回数が約150万回から9万回に減った。この変更により、そのクレートのcheckビルドの実経過時間は約30%短縮した。同じ解析で不要な射影データを扱わないようにしたことで、高負荷のベンチマークでは命令数が17%減少した。
成果を上げた作業の多さは、プロジェクトの統合手順にも影響した。Rustでは通常、性能に関わるパッチは、その効果を明確に測定できるよう個別にマージする。しかし、この期間には待機中の変更が増えたため、性能を改善する10件の変更を1つのロールアップにまとめ、その後、さらに4件をまとめたものが続いた。個々の効果は、マージ後にも確認できた。
したがって、この2カ月間の改善は幅広いものの、一様ではない。新しいコンパイラの仕組みの一部は、特定のプロジェクトでは依然として負荷を増やすが、ベンチマーク群全体では、ほかの領域の改善がそれを上回っている。今後も突出して遅いケースをプロファイリングすることで、これらの仕組みが提供する追加の解析を犠牲にせず、残る性能差をどこまで縮められるかが決まる。



