it.xnews.jp
出典: Nicholas Nethercote 原文公開: 2026-09-30 生成: 2026-10-01 読了 約 3 分 model: claude-haiku-4-5 原文: https://nnethercote.github.io/2026/09/30/how-to-speed-up-the-rust-compiler-in-september-2026.html raw.md

Rustコンパイラが2ヶ月で4.57%の高速化を実現

2026年7月から9月にかけて、Rustコンパイラは平均ウォールタイムで4.57%の削減を達成し、629個のベンチマーク測定のうち555個が改善した。

2026年7月29日から9月28日の期間、Rustコンパイラは複数の最適化により著しいパフォーマンス向上を記録した。平均ウォールタイム削減は4.57%で、629個のベンチマーク測定のうち555個が改善、74個のみが悪化した。

主要な最適化成果

複数のコンポーネントで最適化が進められた。Noah Levはrustdocで速度向上を実現し、Jakub BerránekはClippyのPGO(Profile Guided Optimization)をPR #159642で有効化し、ウォールタイムで最大18%の改善を達成した。Nikita PopovはLLVM 23へのアップグレードをPR #158734で実施し、全ベンチマークで平均1.2%のウォールタイム削減をもたらした。

Jack HueyはPR #161938でliveness計算を遅延化し、serdeの命令数を3~5%削減した。またPR #163027でデータ構造の調整とインライン化の最適化を行った。xmakroは複数のPRで最適化を実施し、PR #157281では実装処理の最適化により平均サイクル数を1.58%削減、PR #158059ではインクリメンタルコンパイレーション中のデータロードの最適化で最大6%の命令数削減、PR #160473ではオブリゲーション処理でのアロケーション回避により最大2%の命令数削減を達成した。さらにPR #160268ではトレイトソルバー選択コードを静的ディスパッチに変更した。

特に大きな改善事例

Nicholas Nethercoteはいくつかの重要な最適化を推進した。PR #160193ではCFGトラバーサルアルゴリズムを変更し、cranelift-codegenクレートの18000個の基本ブロックを持つ巨大な関数の処理を改善した。旧アルゴリズムでは150万回のapply_effects_in_block呼び出しが必要だったが、新アルゴリズムでは9万回に削減され、チェックビルドで約30%のウォールタイム削減をもたらした。PR #160033ではEverInitializedPlacesを効率化し、match-stressベンチマークで命令数を17%削減した。

Chris DentonはPR #160535でデフォルトスタックサイズを増加させ、最大3%の命令数削減を実現した。Nicholas NethercoteはPR #162747でAST to HIRの低速化を改善し、最大1.5%の命令数削減を達成した。

コンパイラの新機能

新しいborrow checker「Polonius Alpha」がNightlyで有効化され、新しいトレイトソルバーもNightlyで有効化された。新しいborrow checkerは旧版よりも多くの処理を行うため、特定のケースではコンパイル時間に測定可能な差が出る可能性がある。

Jonathan BrouwerはPR #160506で10個のパフォーマンス改善PRをロールアップにまとめ、PR #162859では4個のパフォーマンス改善PRをまとめた。

筆者の見立て

この記事は元記事の事実のみに基づいて自動生成されました。

出典

Nicholas Nethercote、「How to speed up the Rust compiler in September 2026」、https://nnethercote.github.io/2026/09/30/how-to-speed-up-the-rust-compiler-in-september-2026.html

この記事をシェア