प्लस:
पहला: सौम्य, हारने योग्य मोटापा।
दूसरा: यदि संकलन काफी छोटी फ़ाइल में परिणाम करता है, तो आपको अधिक लोड समय मिलेगा। वेब के लिए अच्छा है।
तीसरा: पायथन संकलन कदम को छोड़ सकता है। इंटिअल लोड पर तेज़। सीपीयू और वेब के लिए अच्छा है।
चौथा: जितना अधिक आप टिप्पणी करेंगे, उतनी ही छोटी .pyc
या .pyo
फाइल स्रोत .py
फ़ाइल की तुलना में होगी ।
पांचवां: केवल हाथ .pyc
या .pyo
फ़ाइल के साथ एक अंतिम उपयोगकर्ता आपको बग के साथ पेश करने की बहुत कम संभावना है, क्योंकि वे एक अन-उलट बदलाव के कारण होते हैं जो वे आपके बारे में बताना भूल गए थे।
छठा: यदि आप एक एम्बेडेड सिस्टम को लक्ष्य कर रहे हैं, तो एम्बेड करने के लिए एक छोटे आकार की फ़ाइल प्राप्त करना एक महत्वपूर्ण प्लस का प्रतिनिधित्व कर सकता है, और आर्किटेक्चर स्थिर है इसलिए एक विस्तृत, नीचे विस्तृत, खेलने में नहीं आता है।
शीर्ष स्तर का संकलन
यह जानना उपयोगी है कि आप शीर्ष स्तर के पायथन स्रोत फ़ाइल को .pyc
इस तरह से फ़ाइल में संकलित कर सकते हैं :
python -m py_compile myscript.py
यह टिप्पणियों को हटाता है। यह docstrings
बरकरार रहता है। यदि आप इससे भी छुटकारा पाना docstrings
चाहते हैं (आप गंभीरता से सोचना चाहते हैं कि आप ऐसा क्यों कर रहे हैं) तो इसके बजाय इस तरह से संकलित करें ...
python -OO -m py_compile myscript.py
... और आपको एक .pyo
फ़ाइल के बजाय एक फ़ाइल मिलेगी .pyc
; कोड की आवश्यक कार्यक्षमता के संदर्भ में समान रूप से वितरण योग्य, लेकिन छीन-छांट के आकार से छोटा docstrings
(और बाद के रोजगार के लिए कम आसानी से समझा जाता है अगर यह docstrings
पहले स्थान पर सभ्य था )। लेकिन नीचे तीन देखें।
ध्यान दें कि अजगर .py
फ़ाइल की तारीख का उपयोग करता है , अगर यह मौजूद है, तो यह तय करने के लिए कि क्या इसे .py
फ़ाइल का विरोध करना चाहिए .pyc
या .pyo
फ़ाइल के विपरीत --- तो अपनी .py फ़ाइल को संपादित करें, और .pyc
या .pyo
अप्रचलित है और जो भी लाभ प्राप्त हुए हैं वह खो गए हैं। आपको इसे फिर से प्राप्त करने .pyc
या .pyo
फिर से वापस पाने के लिए इसे फिर से बनाने की आवश्यकता है, जैसे कि वे हो सकते हैं।
कमियां:
पहली: इसमें "मैजिक कुकी" है .pyc
और .pyo
फाइलें जो सिस्टम आर्किटेक्चर को इंगित करती हैं कि अजगर फाइल को संकलित किया गया था। यदि आप इनमें से किसी एक फाइल को एक अलग प्रकार के वातावरण में वितरित करते हैं, तो यह टूट जाएगा। आप वितरित हैं .pyc
या .pyo
जुड़े बिना .py
recompile करने के लिए या touch
तो यह प्रतिस्थापित करता है .pyc
या .pyo
, अंत उपयोगकर्ता इसे ठीक नहीं किया जा सकता है, या तो।
दूसरा: यदि ऊपर वर्णित कमांड लाइन विकल्प docstrings
के उपयोग के साथ छोड़ दिया जाता -OO
है, तो कोई भी उस जानकारी को प्राप्त करने में सक्षम नहीं होगा, जो कोड का उपयोग अधिक कठिन (या असंभव) कर सकता है।
तीसरा: पायथन का -OO
विकल्प -O
कमांड लाइन विकल्प के अनुसार कुछ अनुकूलन को भी लागू करता है; इसके परिणामस्वरूप ऑपरेशन में बदलाव हो सकते हैं। ज्ञात अनुकूलन हैं:
sys.flags.optimize
= 1
assert
बयान छोड़ दिए जाते हैं
__debug__
= झूठा
चौथा: यदि आपने जानबूझकर अपनी अजगर स्क्रिप्ट #!/usr/bin/python
को पहली पंक्ति के आदेश पर किसी चीज के साथ निष्पादन योग्य बनाया है , तो यह अंदर .pyc
और .pyo
फाइलों में छीन लिया जाता है और यह कार्यक्षमता खो जाती है।
पांचवां: कुछ हद तक स्पष्ट है, लेकिन यदि आप अपना कोड संकलित करते हैं, तो न केवल इसका उपयोग प्रभावित हो सकता है, बल्कि दूसरों के आपके काम से सीखने की क्षमता कम हो जाती है, अक्सर गंभीर रूप से।