\--enable-optimizations在编译python时做什么?
我正在尝试在基于arm的Linux机器上编译Python 3.6, ./configure
输出如下:
如果您希望发布具有所有优化功能(LTO,PGO等)有效的发行版本,请运行
./configure --enable-optimizations
。
怎么--enable-optimizations
办?
回答:
该标志启用配置文件引导的优化(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
)会在配置脚本中将其禁用。
不过,此标志的将来版本可能始终会启用它,因此在这里讨论它们都非常安全。
以上是 \--enable-optimizations在编译python时做什么? 的全部内容, 来源链接: utcz.com/qa/436412.html