总体进展
根据 2026 年 7 月 29 日至 9 月 28 日的测量数据,Rust 编译器在两个月内取得了显著的性能提升。平均墙壁时间(wall time)缩短了 4.57%。在 629 个基准测试中,555 项指标有所改善,仅 74 项出现回落,部分基准甚至出现了两位数的百分比下降。这一广泛且积极的性能变化被社区称为“绿色的海洋”。

Rustdoc 与 Clippy 优化
Rustdoc 方面,开发者诺亚·列夫(Noah Lev)近期发布文章,详细阐述了其在文档生成速度上的重大突破。Clippy 方面,PR #159642 由 Jakub Beránek 提交,正式启用了 Clippy 的 PGO(Profile-Guided Optimization,剖面反馈优化)。
LLVM 升级
PR #158734 将编译器依赖的 LLVM 版本升级至 LLVM 23,该更新由 Nikita Popov 主导。尽管所有基准指标的平均墙壁时间减少幅度仅为 1.2%,但这一底层工具链的升级被视为一项重要的基础性工作。
新借贷检查器 Polonius Alpha
新一代借贷检查器 Polonius Alpha 已在 Nightly 通道启用。相较于旧版检查器,Polonius Alpha 具备更高的精确度,能够接受部分旧版拒绝的有效程序。虽然其计算开销更大,导致少数场景下出现可衡量的性能差异,但开发者杰克·休伊(Jack Huey)已针对此问题展开调查与优化:
- PR #161938:通过惰性化活力计算(liveness computation),使 serde crate 的指令数量减少 3-5%,其他基准也有不到 1% 的降幅。
- PR #163027:调整数据结构及内部实现,使多数基准的指令数量降低不到 1%。
尽管仍存在回归问题,但近期的整体改进足以抵消这些负面影响。
新特征解析器 Penelope Hammertime
新的特征解析器(Trait Solver),代号 Penelope Hammertime,同样已在 Nightly 通道启用。Jana Dönszelmann 撰写了详细的技术分析文章,指出新解析器在特定情况下可能比旧版更慢,但团队正在积极处理相关性能瓶颈。
此外,一系列 PR(#160479、#160605、#160801、#160892、#161077、#161211)提交了多项优化。这些改动显著缩短了异常 crate 的编译时间,部分案例中编译耗时减少了 50%、25% 或 15%,在压力测试中效果更为明显。
xmakro 的贡献
新贡献者 xmakro 在多个关键路径上实施了优化:
- PR #157281:优化构建专业化图表时的 impl 处理逻辑,使所有基准的平均循环次数减少 1.58%。
- PR #158059:改进增量编译数据加载机制,最佳情况下指令数量减少 6%。
- PR #160473:避免热义务处理路径中的冗余分配,最佳情况下指令数量减少 2%。
- PR #160268:将旧/新特征解析器的选择代码从动态分发改为静态分发,消除大量分配,使多数基准指令数减少不到 1%。此前 PR #155714 曾尝试类似思路,此次成功主要得益于 #[inline] 属性位置的调整。
数据流分析改进
在数据流分析领域,两项关键 PR 提升了效率:
- PR #160193:修改了 CFG 遍历算法以加速不动点迭代。对于包含超过 18,000 个基本块的巨大函数(如 cranelift-codegen crate),EverInitializedPlaces 分析的 apply_effects_in_block 调用次数从 150 万次降至 90,000 次,使得该 crate 的检查构建墙钟时间减少约 30%。
- PR #160033:进一步优化 EverInitializedPlaces 效率,在匹配压力基准中指令数量减少 17%,其他基准减少不到 1%。
其他技术细节
- 堆大小调整(PR #160535):Chris Denton 增加了编译器默认堆大小,从而允许移除用于手动堆扩展的 ensure_sufficient_stack 机制。这一改动解决了高度递归场景下的堆疲劳问题,多数基准的指令数量因此减少,最高降幅接近 3%。
- Rollup PR 策略(PR #160506):由于 CI 资源限制,部分性能优化 PR 采用合并方式(rollup)。Jonathan Brouwer 创建了一个包含 10 个性能提升 PR 的文件,后续 PR #162859 又合并了四个性能提升 PR。系统具备合并后单独运行基准套件的能力,以确保每个 PR 的预期性能效应得到验证。
- AST 到 HIR 降级优化(PR #162747):对 AST 降级为 HIR 的代码进行了小幅清理。虽然预期不影响核心性能,但在许多基准中意外实现了指令数量减少,最高达 1.5%。
关于 LLMs 与工作展望
目前大型语言模型(LLMs)在某些类型的分析任务中表现优异,但核心代码与文本编写仍依赖人工完成。编译器性能优化项目正稳步推进,感谢 Mara Bos、Predrag Gruevski 及其他贡献者的努力。





