Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

फ़ंक्शन में पायथन कोड तेजी से क्यों चलता है?

<शरीर>

यह पाया गया है कि यदि पायथन कोड सामान्य रूप से चलाया जाता है और फिर यदि इसे पायथन फ़ंक्शन में चलाया जाता है, तो यह बाद के मामले में तेजी से चलता है। मैं जानना चाहता हूं कि फ़ंक्शन में पायथन कोड तेजी से क्यों चलता है।

यह आमतौर पर पाया जाता है कि पाइथन फ़ंक्शन में वैश्विक चर की तुलना में स्थानीय चर को स्टोर करना तेज़ होता है। इसे निम्नानुसार समझाया जा सकता है।

स्थानीय/वैश्विक परिवर्तनीय स्टोर समय के अलावा, ओपकोड भविष्यवाणी कार्य को तेज़ बनाती है।

CPython मूल Python कार्यान्वयन है जिसे हम Python.org से डाउनलोड करते हैं। इसे बाद के पायथन कार्यान्वयन से अलग करने के लिए और पायथन प्रोग्रामिंग भाषा से भाषा इंजन के कार्यान्वयन को अलग करने के लिए इसे CPython कहा जाता है।

CPython को C भाषा में लागू किया जाना होता है। CPython हमारे पायथन कोड को बाइटकोड में संकलित करता है और मूल्यांकन लूप में उस बाइटकोड की व्याख्या करता है।

जब कोई फ़ंक्शन संकलित किया जाता है, तो स्थानीय चर एक निश्चित आकार के सरणी (एक ताना नहीं) में संग्रहीत होते हैं और चर नाम इंडेक्स को असाइन किए जाते हैं। यह संभव है क्योंकि आप किसी फ़ंक्शन में गतिशील रूप से स्थानीय चर नहीं जोड़ सकते हैं। फिर एक स्थानीय चर को पुनः प्राप्त करना वस्तुतः सूची में एक सूचक खोज है और PyObject पर एक पुनर्गणना वृद्धि जो अप्रासंगिक है।

इसकी तुलना ग्लोबल लुकअप से करें, जो एक हैश वगैरह से जुड़ी एक सच्ची तानाशाही खोज है। संयोग से, यही कारण है कि यदि आप एक चर को वैश्विक बनाना चाहते हैं तो आपको वैश्विक निर्दिष्ट करने की आवश्यकता है:यदि आप कभी भी एक दायरे के अंदर एक चर को असाइन करते हैं, तो संकलक इसके उपयोग के लिए STORE_FASTs जारी करेगा जब तक कि आप इसे नहीं बताते।

वैसे, वैश्विक लुकअप अभी भी काफी अनुकूलित हैं। विशेषता लुकअप वास्तव में धीमे होते हैं!


  1. Google कोलैबोरेटरी पर पायथन कोड कैसे चलाएं?

    Google Colaboratory एक मुफ़्त Jupyter नोटबुक वातावरण है जिसमें किसी सेटअप की आवश्यकता नहीं होती है और यह पूरी तरह से क्लाउड में चलता है। यह Google क्लाउड में होस्ट किया गया है और Google द्वारा अजगर कोडर्स के लाभ के लिए बनाए रखा गया है जो क्लाउड वातावरण का उपयोग करके पायथन स्क्रिप्ट को चलाना और परीक्

  1. issubset () पायथन में फ़ंक्शन

    इस लेख में, हम पायथन स्टैंडर्ड लाइब्रेरी में उपलब्ध issubset () फ़ंक्शन के कार्यान्वयन और उपयोग के बारे में जानेंगे। issubset() विधि बूलियन ट्रू लौटाती है जब एक सेट के सभी तत्व दूसरे सेट में मौजूद होते हैं (एक तर्क के रूप में पारित) अन्यथा, यह बूलियन गलत देता है। नीचे दिए गए चित्र में B, A का एक उ

  1. पायथन अन्य भाषाओं की तुलना में धीमा क्यों है?

    पायथन एक स्क्रिप्टिंग भाषा है जबकि सी एक प्रोग्रामिंग भाषा है। सी/सी++ पायथन की तुलना में अपेक्षाकृत तेज है क्योंकि जब आप पायथन लिपि चलाते हैं, तो इसका दुभाषिया लाइन द्वारा स्क्रिप्ट लाइन की व्याख्या करेगा और आउटपुट उत्पन्न करेगा, लेकिन सी में, कंपाइलर पहले इसे संकलित करेगा और एक आउटपुट उत्पन्न करेग