Python Timeit() उदाहरण सहित

⚡ स्मार्ट सारांश

Python Timeit() फ़ंक्शन एक छोटे कोड स्निपेट को कई बार चलाकर उसके निष्पादन समय को मापता है और न्यूनतम समय अवधि लौटाता है। यह timeit, repeat और default_timer विधियों का समर्थन करता है और स्क्रिप्ट या कमांड लाइन से काम करता है।

  • टाइमइट की परिभाषा: यह किसी कोड स्निपेट के निष्पादन समय को मापता है और कई बार चलाने के बाद न्यूनतम समय लौटाता है।
  • 🧩 पैरामीटर: stmt, setup, timer और number यह नियंत्रित करते हैं कि क्या चलेगा और कितनी बार चलेगा।
  • 🔁 तरीके: timeit(), repeat() और default_timer() अलग-अलग समय निर्धारण विकल्प प्रदान करते हैं।
  • 💻 कमांड लाइन: python -m timeit कमांड को -n, -r और -s जैसे फ्लैग के साथ चलाएं।
  • इसका उपयोग क्यों करें: यह गार्बेज कलेक्शन को अक्षम करता है और प्रत्येक ऑपरेटिंग सिस्टम के लिए सबसे सटीक टाइमर का चयन करता है।

Python Timeit()

एचएमबी क्या है? Python टाइमइट()?

Python timeit() एक विधि है Python दिए गए कोड स्निपेट द्वारा लिए गए निष्पादन समय को मापने के लिए लाइब्रेरी। Python लाइब्रेरी कोड स्टेटमेंट को 1 मिलियन बार चलाती है और दिए गए कोड स्निपेट सेट से लिया गया न्यूनतम समय प्रदान करती है। Python timeit() एक उपयोगी विधि है जो कोड के प्रदर्शन की जांच करने में मदद करती है।

वाक्य - विन्यास

timeit.timeit(stmt, setup,timer, number)

पैरामीटर्स

  • एसटीएमटी: यह वह कोड लेगा जिसके लिए आप निष्पादन समय मापना चाहते हैं। डिफ़ॉल्ट मान "पास" है।
  • व्यवस्था: इसमें सेटअप विवरण होंगे जिन्हें stmt से पहले निष्पादित करने की आवश्यकता है। डिफ़ॉल्ट मान "पास" है।
  • घड़ी: इसमें टाइमर मान होगा, timeit() में पहले से ही एक डिफ़ॉल्ट मान सेट है, और हम इसे अनदेखा कर सकते हैं।
  • संख्या: कथन यहाँ दी गई संख्या के अनुसार निष्पादित होगा। डिफ़ॉल्ट मान 1000000 है।

Timeit() के साथ काम करने के लिए, हमें मॉड्यूल को आयात करने की आवश्यकता है, जैसा कि नीचे दिखाया गया है:

import timeit

पहला उदाहरण

यहाँ timeit() फ़ंक्शन का एक सरल उदाहरण दिया गया है

Code उदाहरण 1

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

आउटपुट:

0.06127880399999999

हमने एक सरल उदाहरण देखा है जो हमें सरल कोड स्टेटमेंट आउटपुट = 10*5 का निष्पादन समय देता है, और इसे निष्पादित करने में लगा समय 0.06127880399999999 है।

पायथन कोड में कई पंक्तियों का समय निर्धारण

Timeit.timeit() में कोड की कई पंक्तियों को निष्पादित करने के दो तरीके हैं: पंक्तियों को अर्धविराम से अलग करना या कोड को ट्रिपल उद्धरण चिह्नों के साथ स्ट्रिंग के रूप में संलग्न करना।

यहां कुछ उदाहरण दिए गए हैं जो इसकी कार्यप्रणाली को दर्शाते हैं।

उदाहरण 1: अर्धविराम का उपयोग करना

import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

आउटपुट:

The time taken is  0.137031482

उदाहरण 2: ट्रिपल उद्धरण चिह्नों का उपयोग करना

import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

आउटपुट:

C:\pythontest>python testtimeit.py
The time taken is  0.182619178

timeit – विधियाँ

यहाँ, 2 महत्वपूर्ण टाइमइट विधियाँ दी गई हैं

timeit.डिफ़ॉल्ट_टाइमर() : यह निष्पादित होने पर डिफ़ॉल्ट समय लौटाएगा।

timeit.repeat(stmt, सेटअप, टाइमर, दोहराएँ, संख्या) timeit() के समान, लेकिन repeat के साथ timeit() को उतनी बार बुलाया जाता है जितनी बार repeat दिया जाता है।

कार्यक्रम उदाहरण 1

# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

आउटपुट:

0.46715912400000004

उदाहरण 2

default_timer() उदाहरण

# testing timeit()

import timeit
import random

def test():
    return random.randint(10, 100)

starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

आउटपुट:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

उदाहरण 3: timeit.repeat()

# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

आउटपुट:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat(), timeit.timeit() फ़ंक्शन के समान कार्य करता है, केवल अंतर यह है कि यह repeat तर्क को लेता है और repeat संख्या के अनुसार मानों के साथ सरणी प्रारूप में निष्पादन समय देता है।

कमांड-लाइन इंटरफ़ेस के अंदर टाइमिंग फ़ंक्शन timeit.timeit() निष्पादित करना

कमांड लाइन पर timeit() के अंदर अपने फ़ंक्शन को निष्पादित करने का सिंटैक्स इस प्रकार है:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

कमांड लाइन पैरामीटर:

  • -n N: वह संख्या जिसके अनुसार आप कोड को निष्पादित करना चाहते हैं।
  • -r N: वह संख्या जिसके अनुसार आप timeit() फ़ंक्शन को दोहराना चाहते हैं
  • -s S: इसमें सेटअप विवरण होगा जो कोड निष्पादन से पहले निष्पादित हो जाएगा।
  • -t: इसके लिए आप time.time() का उपयोग कर सकते हैं
  • -c: इसके लिए आप time.clock() का उपयोग कर सकते हैं
  • -h: सहायता के लिए
  • कोड विवरण: कोड विवरण.

उदाहरण

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

कमांड लाइन के अंदर निष्पादित करने का दूसरा तरीका नीचे दिखाया गया है:

उदाहरण

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

timeit() निष्पादन समय को मापने का सबसे अच्छा तरीका क्यों है? Python कोड?

यहां कुछ कारण दिए गए हैं कि क्यों हम timeit() को निष्पादन समय मापने का सबसे अच्छा तरीका मानते हैं।

  • यह कोड स्टेटमेंट को 1 मिलियन बार चलाता है जो डिफ़ॉल्ट मान है, और उससे, यह आपको लिया गया न्यूनतम समय लौटाएगा। आप टाइम () फ़ंक्शन में तर्क संख्या सेट करके 1 मिलियन को बढ़ा/घटा भी सकते हैं।
  • परीक्षण निष्पादित करते समय, कचरा संग्रहण हर बार time () फ़ंक्शन द्वारा अक्षम किया जाता है।
  • timeit() आंतरिक रूप से आपके द्वारा उपयोग किए जा रहे ऑपरेटिंग सिस्टम के अनुसार सटीक समय लेता है। उदाहरण के लिए, यह time.clock() का उपयोग करेगा Windows ऑपरेटिंग सिस्टम और मैक और लिनक्स के लिए time.time()।

अक्सर पूछे जाने वाले प्रश्न

timeit.timeit() स्टेटमेंट को निर्धारित संख्या में बार चलाता है और कुल समय लौटाता है। timeit.repeat() उस पूरे माप को कई बार चलाता है और परिणामों की एक सूची लौटाता है, जिससे आप सबसे अच्छा परिणाम चुन सकते हैं।

टाइमइट माप के दौरान गार्बेज कलेक्शन को निष्क्रिय कर देता है ताकि बैकग्राउंड क्लीनअप से समय में कोई गड़बड़ी न हो। इससे परिणाम अधिक सुसंगत और तुलनीय बनते हैं, और पूरी तरह से परीक्षण किए जा रहे कोड स्निपेट के निष्पादन समय पर ध्यान केंद्रित होता है।

आप stmt स्ट्रिंग के अंदर अर्धविराम का उपयोग करके कथनों को अलग कर सकते हैं, या तीन उद्धरण चिह्नों का उपयोग करके बहु-पंक्ति स्ट्रिंग पास कर सकते हैं। फ़ंक्शंस के लिए, उन्हें सेटअप में परिभाषित करें और stmt से उन्हें कॉल करें।

एआई कोड का प्रोफाइल बना सकता है, धीमे लूप या महंगे कॉल की पहचान कर सकता है, वेक्टरयुक्त या अंतर्निहित विकल्पों का सुझाव दे सकता है, और बेहतर डेटा संरचनाओं की सिफारिश कर सकता है।ping डेवलपर्स उन क्षेत्रों में अनुकूलन पर ध्यान केंद्रित करते हैं जहां समय के साथ सबसे बड़ी बाधाएं सामने आती हैं।

जी हां। किसी कोड स्निपेट और उसके टाइमइट परिणामों को देखते हुए, एआई लिस्ट कॉम्प्रिहेंशन, जेनरेटर एक्सप्रेशन या लाइब्रेरी फ़ंक्शन जैसे पुनर्लेखन का सुझाव दे सकता है, फिर आप सुधार की पुष्टि करने के लिए टाइमइट को दोबारा चला सकते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: