LLVM项目现在在构建x86_64 Microsoft Windows发布包时采用了配置文件导向优化(PGO)。使用PGO可以使他们的Clang建造速度快22%。
最初是
提取请求
将PGO和ThinLTO用于Windows发布包。但他们最终把电话拨回了PGO。但使用PGO+ThinLTO,他们发现安装程序二进制文件大约小5%,而工具链构建速度大约快20%。
具有
这个承诺
对于本周早些时候合并的LLVM,默认情况下只启用PGO,但对工具链性能来说效果很好:
将PGO用于x86_64 windows发布包(#71067)
将其应用于17.0.4可使工具链的速度提高22%(通过构建clang来衡量)。
对于那些长期试验LTO和PGO的人来说,结果可能并不太令人惊讶。
PGO可以带来巨大的性能提升
假设您已经为软件使用生成了准确的配置文件。尽管由于所涉及的复杂性和需要具有准确的轮廓,
Clang PGO被Linux内核击落
作为一个例子。无论如何
PGO
is one of the exciting compiler optimization techniques for helping to achieve maximum performance.