私はPython 3.6をARMベースのLinuxマシンでコンパイルしようとしています。./configure
はこれを出力します:
すべての最適化(LTO、PGOなど)をアクティブにしたリリースビルドが必要な場合は、
./configure --enable-optimizations
を実行してください。
--enable-optimizations
は何をしますか?
このフラグは、プロファイルガイド型最適化(PGO)およびリンク時間最適化(LTO)を有効にします。
どちらもビルドプロセスを遅くする高価な最適化ですが、大幅な速度向上をもたらします(私が読んだ覚えているものから約10-20%)。
これらが正確に行うことについての議論は、私の知識を超えており、おそらく1つの質問には広すぎます。いずれにせよ、LTOについては GCCの実装が実装されているドキュメント から読み、 wikiページ を読むことでPGOを始めることができます。
また、これらを追加したPython Bug Trackerで開かれた関連する問題を参照してください。
--enable-optimizations
フラグは、前述の最適化を有効にするconfigureスクリプトに追加されます。コメントで@Shuoが指摘し、 Issue 28032 で述べられているように、LTOはalwaysが--enable-optimizations
国旗。一部のプラットフォーム( gcc
のサポートされているバージョンに応じて )は、構成スクリプトで無効にします。
ただし、このフラグの将来のバージョンでは、常に有効にされる可能性が高いため、ここで両方について説明しても安全です。