2016-12-31 9 views
27

मैं आधारित Linux मशीन एक हाथ पर पायथन 3.6 संकलित करने के लिए कोशिश कर रहा हूँ, ./configure आउटपुट इस:पायथन को संकलित करते समय - सक्षम-अनुकूलन क्या करता है?

आप एक रिलीज सभी सक्रिय अनुकूलन (LTO, PGO, आदि) के साथ निर्माण चाहते हैं, ./configure --enable-optimizations चलाएं ।

--enable-optimizations क्या करता है?

+4

जो मैंने पढ़ा है वह यह है कि यह 'प्रोफ़ाइल मार्गदर्शित अनुकूलन' नामक चीज़ पर बदल जाता है। इस प्रकार के अनुकूलन को कॉन्फ़िगर करने में काफी समय लगता है, लेकिन परिणामी पायथन बाइनरी दुभाषिया पाइथन कोड निष्पादित करने पर 10% तेज है। इस संदर्भ को जांचें (वास्तव में एक गिथब मुद्दा) - [अंक # 160] (https://github.com/docker-library/python/issues/160) –

उत्तर

26

यह ध्वज प्रोफ़ाइल निर्देशित अनुकूलन (पीजीओ) और लिंक टाइम ऑप्टिमाइज़ेशन (एलटीओ) को सक्षम बनाता है।

दोनों महंगा अनुकूलन हैं जो निर्माण प्रक्रिया को धीमा करते हैं लेकिन एक महत्वपूर्ण गति वृद्धि (मुझे जो याद है उसे लगभग 10-20%) उत्पन्न करते हैं।

इन की चर्चा के बारे में चर्चा मेरे ज्ञान से परे है और शायद एक प्रश्न के लिए बहुत व्यापक है। किसी भी तरह से, आप the docs on GCC which has an implementation for it से एलटीओ के बारे में कुछ पढ़ सकते हैं और its wiki page पढ़कर पीजीओ पर शुरुआत कर सकते हैं।

  • Issue 24915: प्रोफ़ाइल गाइडेड अनुकूलन सुधार (बेहतर प्रशिक्षण, LLVM समर्थन, आदि) (। जोड़ा गया PGO)
  • इसके अलावा, अजगर बग ट्रैकर है कि इन जोड़ा पर खोला प्रासंगिक मुद्दों को देखने के

  • Issue 25702: जीसीसी और बजना के लिए लिंक समय अनुकूलन समर्थन
  • Issue 26359 (जोड़ा LTO।): CPython बाहर के बॉक्स प्रदर्शन के लिए विकल्प का निर्माण मंजूरी (कॉन्फ़िगर स्क्रिप्ट जो ऊपर उल्लिखित अनुकूलन के लिए सक्षम बनाता करने के लिए --enable-optimizations ध्वज जोड़ता है।)

के रूप में एक टिप्पणी में @Shuo द्वारा बताया और Issue 28032 में कहा गया है, LTO नहीं हमेशा--enable-optimizations ध्वज के साथ सक्षम है । कुछ प्लेटफॉर्म (depending on the supported version of gcc) इसे कॉन्फ़िगरेशन स्क्रिप्ट में अक्षम कर देंगे।

इस ध्वज के भविष्य के संस्करण शायद इसे हमेशा सक्षम बनाएंगे, इसलिए यहां दोनों के बारे में बात करना बहुत सुरक्षित है।

+3

प्रति https://bugs.python.org/issue28032, सक्षम- अनुकूलन केवल एलजीओ नहीं, पीजीओ लागू करते हैं। – Shuo

+0

@ शूओ अच्छा पकड़, ऐसा लगता है कि यह कुछ बिल्डबॉट तोड़ दिया। मैंने इस पते को हल करने के लिए प्रश्न अपडेट किया है। –

संबंधित मुद्दे