我正在尝试在基于arm的Linux机器上编译Python 3.6,./configure输出以下内容:


--enable-optimizations是做什么的?

最佳答案

此标志启用配置文件引导的优化(PGO)和链接时间优化(LTO)。

两者都是昂贵的优化,会减慢构建过程,但会显着提高速度(我记得阅读的内容大约有10-20%)。

关于这些功能到底是什么的讨论超出了我的理解,并且可能对于单个问题而言过于广泛。无论哪种方式,您都可以从the docs on GCC which has an implementation for it中阅读一些有关LTO的信息,并通过阅读its wiki page来开始使用PGO。

另外,请参阅在Python Bug Tracker上打开的相关问题,其中添加了以下内容:

  • Issue 24915:配置文件引导的优化改进(更好的培训,llvm支持等)(添加了PGO。)
  • Issue 25702:对GCC和CLANG的链接时间优化支持(已添加LTO。)
  • Issue 26359:即时可用的CPython构建选项(向配置脚本添加--enable-optimizations标志,以实现上述优化。)

  • 正如@Shuo在评论中指出并在Issue 28032中指出的那样,LTO并不总是启用--enable-optimizations标志。某些平台(depending on the supported version of gcc )会在配置脚本中将其禁用。

    不过,此标志的将来版本可能始终会启用它,因此在这里谈论它们都非常安全。

    08-05 18:02