मैंने एक टिप्पणी देखी जो मुझे Why does Python code run faster in a function? पर सवाल पहुंचाती है।क्या यह वास्तव में सच है कि एक समारोह में पायथन कोड तेजी से चलता है?
मैं सोच पर पहुंचे, और लगा मैं इसे अपने आप timeit
लाइब्रेरी का उपयोग कर की कोशिश करेगा, फिर भी मैं बहुत अलग परिणाम मिल गया:
(टिप्पणी: 10**8
10**7
में बदल गया था बातें एक छोटा सा करने के लिए त्वरित बनाने के लिए समय)
>>> from timeit import repeat
>>> setup = """
def main():
for i in xrange(10**7):
pass
"""
>>> stmt = """
for i in xrange(10**7):
pass
"""
>>> min(repeat('main()', setup, repeat=7, number=10))
1.4399558753975725
>>> min(repeat(stmt, repeat=7, number=10))
1.4410973942722194
>>> 1.4410973942722194/1.4399558753975725
1.9
- मैं
timeit
सही ढंग से उपयोग किया? - ये परिणाम एक दूसरे से 0.1% अलग क्यों हैं, जबकि अन्य प्रश्नों के परिणाम लगभग 250% अलग थे?
- क्या
का उपयोग करते समय यह केवल एक फर्क पड़ता है CPythonपायथन (जैसे साइथन) के संकलित संस्करण? - आखिरकार: पाइथन कोड वास्तव में फ़ंक्शन में तेज़ी से है, या यह सिर्फ इस पर निर्भर करता है कि आप इसे कैसे समय देते हैं?
मुझे लगता है कि यह काफी हद तक कार्यान्वयन पर निर्भर है (ताकि दोनों संस्करण और वितरण (यानी सामान्य पायथन बनाम सीपीथन आदि) महत्वपूर्ण हैं)। साथ ही, आपको एक ही तुलना में सटीक उसी कोड को चलाने का प्रयास करना चाहिए (और इसे उसी समय समझाएं), बस एक उचित तुलना के लिए। – Cornstalks
[यह पोस्ट] (http://stackoverflow.com/a/11241708/1961486) अंतर्दृष्टिपूर्ण है। – Octipi
तो, ऐसा लगता है कि यह पाइथन (सीपीथन, पायपी, इत्यादि) के संकलित संस्करणों में महत्वपूर्ण है, लेकिन सादे पुराने वेनिला पायथन में यह अंतर का चाटना नहीं बनाता है! –