编译python时——启用优化做什么?

2024-10-03 13:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在基于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做什么?


Tags: build机器youreleaseifenableconfigurelinux
1条回答
网友
1楼 · 发布于 2024-10-03 13:28:54

此标志启用配置文件引导优化(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 ^{})将在配置脚本中禁用它。

不过,这个标志的未来版本可能会一直启用它,所以在这里谈论它们是非常安全的。

相关问题 更多 >