पायथन कोड के एक टुकड़े के निष्पादन के समय को मापने के लिए पायथन कई तरीके प्रदान करता है। एक तरीका यह है कि पायथन इनबिल्ट टाइम मॉड्यूल का उपयोग करें और प्रोग्राम के निष्पादन से पहले और बाद में समय बचाएं?
पायथन टाइमिट
जब कोई प्रोग्राम चल रहा होता है, तो उस कोड को एक्जीक्यूटेबल बनाने के लिए बैकग्राउंड में कई प्रोसेस भी चलते हैं। समय मॉड्यूल पृष्ठभूमि प्रक्रियाओं के निष्पादन समय की गणना नहीं करता है, हालांकि यदि आपको सटीक समय प्रदर्शन मापन समय की आवश्यकता है, तो यह इसके लिए जाने वाला मॉड्यूल है।
टाइमिट मॉड्यूल कोड को लगभग 1 मिलियन बार (डिफ़ॉल्ट मान) चलाता है और उस कोड के टुकड़े को चलाने में लगने वाले न्यूनतम समय को ध्यान में रखता है।
समय का उपयोग करके पायथन निष्पादन समय प्राप्त करना
टाइमिट मॉड्यूल को हम कई तरह से इस्तेमाल कर सकते हैं। सबसे आसान तरीकों में से एक सीधे पायथन सीएलआई पर उपयोग करना है।
उदाहरण
हम पहले टाइमिट मॉड्यूल के साथ पायथन सीएलआई का उपयोग करना शुरू करेंगे। जब सीएलआई का उपयोग किया जाता है, तो हम देखेंगे कि मॉड्यूल स्वयं कोड के एक ही टुकड़े के लिए किए गए दोहराव की संख्या तय करता है।
उदाहरण 1
C:\Users\rajesh>python -m timeit "'-'.join(str(n) for n in range(200))"1000 loops, best of 3:290 usec per loopC:\Users\rajesh>पायथन-एम टाइमिट "'-'.join(str(n) for n in range(200))"1000 लूप्स, बेस्ट ऑफ 3:292 यूजसी प्रति लूपसी:\यूजर्स\राजेश>पायथन-एम टाइमिट "'-' .join(str(n) for n in range(200))"1000 loops, best of 3:294 usec per loop
उदाहरण 2
आगे हम एक और सरल उदाहरण के साथ टाइमइट का परिचय देते हैं लेकिन पहले हमें "इम्पोर्ट टाइमिट" स्टेटमेंट के साथ टाइमिट मॉड्यूल आयात करना होगा। यह आवश्यक है अगर हम ऊपर की तरह कमांड-लाइन सिंटैक्स का उपयोग नहीं कर रहे हैं।
#Import timeit मॉड्यूलimport timeit# निर्देश समयबद्ध हैं।प्रिंट('x' * 5)प्रिंट('x' + 'x' + 'x' + 'x' + 'x')# स्टेटमेंट पर कॉल टाइमइट और लौटाए गए समय को प्रिंट करें।# ... पुनरावृत्तियों की वैकल्पिक संख्या निर्दिष्ट करें। 'x' + 'x' + 'x' + 'x'", संख्या =10000000))
ऊपर हम कथनों को उद्धृत स्ट्रिंग्स में timeit.timeit विधि में पास करते हैं और फिर हम एक संख्या तर्क निर्दिष्ट करके पुनरावृत्तियों को बढ़ाते हैं।
आउटपुट
उपरोक्त कार्यक्रम चलाने पर पहली बार, आउटपुट उत्पन्न हुआ:
xxxxxxxxxx0.90411368966266350.7712796073957123
प्रोग्राम के ऊपर चलने पर दूसरी बार, आउटपुट जेनरेट हुआ:
xxxxxxxxxx0.73170158744277510.7312688195585995
उपरोक्त कार्यक्रम चलाने पर तीसरी बार, आउटपुट उत्पन्न:
xxxxxxxxxx0.72408624111728240.7255863890794246
हमने अपने उपरोक्त कार्यक्रम को कई बार (3 बार) किया और देखा कि निष्पादन समय में कमी आई है। एक इसे मैन्युअल रूप से करने के बजाय, प्रोग्राम के माध्यम से दोहराव करते हैं:
#Import timeit मॉड्यूलimport timeit# कॉल टाइमइट स्टेटमेंट्स पर और रिटर्न टाइम प्रिंट करें।# ... पुनरावृत्तियों की वैकल्पिक संख्या निर्दिष्ट करें। रिपीट =5))प्रिंट ()प्रिंट (टाइमिट.रिपीट("xy='x' + 'x' + 'x' + 'x' + 'x'", number =10000000, रिपीट =5))
आउटपुट
[0.7303736343436382, 0.7213687552991258, 0.7362311105941466, 0.729313666273243, 0.7278277732068212][0.7388334197158559, 0.7378481457977326, 0.9486733868277772, 0.735295442480929, 0.735295442480929, 0.735295442480929,टाइमिट मॉड्यूल का उपयोग करके कई स्टेटमेंट चलाना:
हम टाइमिट मॉड्यूल के साथ कई स्टेटमेंट का उपयोग कर सकते हैं। हम अर्धविराम का उपयोग करके प्रत्येक कथन को अलग करते हैं। हालांकि यह कोड लिखने का सबसे अच्छा तरीका नहीं है लेकिन लंबे कोड अंशों को निर्दिष्ट करने में मदद करता है।
#Import timeit मॉड्यूलimport timeit# कई स्टेटमेंट्स के लिए सेमीकोलन का इस्तेमाल करें। =4", संख्या=100000000))आउटपुट
[24.859605879029118, 23.58795536845994, 23.95826726353284][22.70639977603264, 21.380195994245724, 20.71523588130414]टाइमिट मॉड्यूल में मेथड्स, सेटअप का उपयोग करना:
हम एक सेटअप तर्क निर्दिष्ट करके समय में कस्टम विधियों का उपयोग कर सकते हैं। इस तर्क में, हम एक आयात विवरण निर्दिष्ट करते हैं जो हमारे द्वारा लागू की जाने वाली विधियों को इंगित करता है।
#आयात समययह मॉड्यूलआयात समयitdef func1 ():वापसी 1def func2 ():वापसी राशि ([-1, 0, 1, 1]) # परीक्षण के तरीके। प्रिंट (func1 ()) प्रिंट (func2 ()) # पास कॉल मेथड्स के लिए सेटअप तर्क।उपरोक्त कार्यक्रम में हम func1() विधि को func2() विधि के विरुद्ध बेंचमार्क करते हैं।
आउटपुट
11[0.44798489246658874, 0.4411512652046069, 0.44570416580426686][1.583622557983199, 1.5712399227517881, 1.5469479030713984]चूंकि func1() कम काम कर रहा है, बहुत तेजी से निष्पादित किया गया है।
सारांश
ऊपर हमने देखा कि कैसे हम सीएलआई और स्क्रिप्ट का उपयोग करके टाइमिट मॉड्यूल का उपयोग करके पायथन कोड के छोटे टुकड़े के प्रदर्शन को माप सकते हैं।