我正在尝试在基于 arm 的 Linux 机器上编译 Python 3.6,
./configure
输出如下:
If you want a release build with all optimizations active (LTO, PGO, etc), please run
./configure --enable-optimizations
.
--enable-optimizations
是做什么的?
最佳答案
此标志启用配置文件引导优化 (PGO) 和链接时间优化 (LTO)。
两者都是昂贵的优化,会减慢构建过程,但会显着提高速度(我记得读过的内容大约提高了 10-20%)。
关于这些究竟做了什么的讨论超出了我的知识范围,对于一个问题来说可能过于宽泛。无论哪种方式,您都可以从 the docs on GCC which has an implementation for it 中了解一些有关 LTO 的信息。并通过阅读 its wiki page 开始使用 PGO .
另外,请参阅 Python Bug Tracker 上打开的相关问题,添加了这些问题:
--enable-optimizations
标志添加到启用上述优化的配置脚本中。)正如@Shuo 在评论中指出并在 Issue 28032 中所述, LTO 并非总是 使用 --enable-optimizations
标志启用。某些平台(depending on the supported version of gcc
)会在配置脚本中禁用它。
这个标志的 future 版本可能会一直启用它,所以在这里讨论它们是很安全的。
https://stackoverflow.com/questions/41405728/