此标志启用配置文件引导优化 (PGO) 和链接时间优化 (LTO)。
两者都是昂贵的优化,会减慢构建过程,但会显着提高速度(我记得读过的内容大约提高了 10-20%)。
关于这些究竟是做什么的讨论超出了我的知识范围,对于一个问题来说可能过于广泛。无论哪种方式,您都可以从 GCC 上的文档中阅读一些关于 LTO 的信息,该文档有一个实现,并通过阅读其 wiki 页面开始使用 PGO 。
此外,请参阅在 Python Bug Tracker 上打开的相关问题,其中添加了以下内容:
- 问题 24915:配置文件引导优化改进(更好的培训、llvm 支持等)(添加了 PGO。)
- 问题 25702:对 GCC 和 CLANG 的链接时间优化支持(添加了 LTO。)
- 问题 26359:开箱即用性能的 CPython 构建选项(将
--enable-optimizations
标志添加到启用上述优化的配置脚本。)
正如@Shuo 在评论中指出并在Issue 28032中所述,LTO 并不总是--enable-optimizations
使用该标志启用。某些平台(取决于支持的版本gcc
)将在配置脚本中禁用它。
这个标志的未来版本可能会一直启用它,所以在这里讨论它们是非常安全的。