我正在尝试在基于arm的Linux机器上编译Python 3.6,
./configure
输出:
如果您想要一个所有优化活动的版本构建(LTO,PGO等), 请运行
./configure --enable-optimizations
。
--enable-optimizations
做了什么?
答案 0 :(得分:44)
此标志启用配置文件引导优化(PGO)和链接时间优化(LTO)。
两者都是昂贵的优化,它们会减慢构建过程,但会显着提高速度(从我记忆中读取的速度提高10-20%)。
关于这些究竟做什么的讨论超出了我的知识范围,对于单个问题可能过于宽泛。无论哪种方式,您都可以从the docs on GCC which has an implementation for it阅读一些关于LTO的内容,并通过阅读its wiki page来了解PGO。
另外,请参阅Python Bug Tracker上添加的相关问题:
--enable-optimizations
标志添加到configure脚本中,从而实现上述优化。)正如@Shuo在评论中指出并在Issue 28032中说明的那样,LTO并未始终启用--enable-optimizations
标志。某些平台(depending on the supported version of gcc
)将在配置脚本中禁用它。
这个标志的未来版本可能总是启用它,所以在这里讨论它们是非常安全的。