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