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

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

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

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

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

पैरामीटर्स

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

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

import timeit

पहला उदाहरण

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

कोड उदाहरण 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() के साथ प्रयुक्त पैरामीटर

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