PGO使得Windows的Rust编译器速度提高了约15%


Rust编译器使用PGO(Profile Guided Optimization)来加快编译时间已经有一段时间了,但是它只针对Linux发行版,所以其他操作系统的用户无法从中受益。

现在,由于@lqd的伟大工作,PGO也在CI中为Windows执行,所以Windows用户将能够享受更快的`rustc`编译器。这个变化刚刚被合并到这个PR中,应该可以从1.64稳定版开始使用。

目前,我们还没有在CI中测量rustc在Windows上的性能的基础设施(我们只测量编译器在Linux上的性能),所以要测量确切的性能优势并不那么简单,但PR中的本地结果显示了一些非常好的进步,例如,在编译有优化的regex crate时,执行指令数减少了近20%。

如果你在想 "那OS X呢",故事就有点复杂了。基本上,目前对某些平台进行PGO的主要障碍(从而使该平台的编译器 "免费 "加速约10-20%)是可用的CI基础设施。OS X的CI构建已经非常慢了,因为GitHub上的OS X工作者根本就没有很好的性能。

举个例子,OS X的构建在CI上已经需要2.5个小时了,而且这还没有PGO。相比之下,Linux的构建时间不到2小时,而且是在完全使用PGO的情况下,其中包括多个LLVM从头开始的重建。我们目前正在考虑另一种方法,即我们可以从Linux中获取PGO工件/文件,并在OS X上应用它们,但这只是一个实验,我们不确定它是否会成功。总而言之,OS X的类似PGO改进仍然需要一些时间才能实现。