Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

छोटे पायथन कोड स्निपेट्स के निष्पादन समय को मापें (समय)

पायथन के मानक पुस्तकालय के टाइमिट मॉड्यूल में टाइमर वर्ग और अन्य सुविधा कार्यों को निष्पादित करने के लिए पायथन कोड के छोटे बिट्स द्वारा लिए गए समय को मापने के लिए एक तंत्र प्रदान करने के लिए डिज़ाइन किया गया है। मॉड्यूल में एक कमांड लाइन इंटरफ़ेस है और फ़ंक्शन को प्रोग्राम के भीतर से भी कॉल किया जा सकता है।

निष्पादन के समय को मापने का सबसे आसान तरीका निम्नलिखित सुविधा फ़ंक्शन का उपयोग करना है

टाइमिट ()

यह फ़ंक्शन टाइमर क्लास का ऑब्जेक्ट देता है। इसके लिए मुख्य रूप से दो मापदंडों की आवश्यकता होती है।

  • stmt - एक स्ट्रिंग जिसमें वैध पायथन स्टेटमेंट होता है जिसका निष्पादन समय मापा जाना है।

  • सेटअप - एक स्ट्रिंग जिसमें पायथन स्टेटमेंट होता है, जिसे एक बार निष्पादित किया जाएगा, मुख्य रूप से कुछ ऑब्जेक्ट्स या वेरिएबल्स को इनिशियलाइज़ करने के लिए।

दोनों स्ट्रिंग्स में सेमी कोलन (;) या न्यूलाइन द्वारा अलग किए गए कई स्टेटमेंट हो सकते हैं, और दोनों कीवर्ड पास करने के लिए डिफ़ॉल्ट हैं। एक अन्य वैकल्पिक पैरामीटर संख्या दी जा सकती है जो 'stmt' के निष्पादन की संख्या को दर्शाती है

निम्नलिखित उदाहरण में, 0-100 की श्रेणी में संख्याओं के संचयी जोड़ को हज़ार गुना करने के लिए आवश्यक समय मापा जाता है।

import timeit
setupcode = "s = 0"
function = '''
for x in range(100):
s = s + x
'''
print (timeit.timeit(setup = setupcode, stmt = function, number = 1000))

यहां एक स्ट्रिंग में लूप के लिए होता है जिसमें 0-100 की सीमा के भीतर संख्याएं जोड़ी जाती हैं। यह स्ट्रिंग stmt पैरामीटर है। इसके अलावा, एक वैरिएबल का इनिशियलाइज़ेशन एक सेटअपकोड स्ट्रिंग द्वारा किया जाता है। टाइमिट () फ़ंक्शन सेकंड में आवश्यक समय की गणना करता है।

आउटपुट

0.03055878530880241

टाइमर क्लास

पहले टाइमर ऑब्जेक्ट बनाकर और फिर उस पर टाइमिट () विधि निष्पादित करके वही परिणाम प्राप्त किया जा सकता है।

दोहराना ()

Timeit () को बार-बार कॉल करने के लिए Timer क्लास में रिपीट () मेथड भी होता है। यह सभी कॉलों की सूची देता है।

उपरोक्त कोड का एक वस्तु उन्मुख संस्करण इस प्रकार है -

import timeit
setupcode = "s = 0"
function = '''
for x in range(100):
s = s + x
'''
t = timeit.Timer(setup = setupcode, stmt = function)
print (t.timeit(number = 1000))
print ('calling repeat() :',t.repeat(3,1000))

आउटपुट

0.019971274194651528
calling repeat() : [0.023369810546474253, 0.020518432391765262, 0.02075439436427058]

कमांड लाइन इंटरफ़ेस

जैसा कि पहले उल्लेख किया गया है, टाइमिट मॉड्यूल में एक कमांड लाइन इंटरफ़ेस है। पायथन स्क्रिप्ट के निष्पादन के लिए कमांड लाइन में -m विकल्प का उपयोग करके मॉड्यूल को ही आयात किया जाता है। निम्नलिखित कमांड लाइन विकल्प विभिन्न पैरामीटर लाइन सेटअप और निष्पादन योग्य कोड, दोहराव आवृत्ति, आदि को परिभाषित करते हैं।

-n N, --number =N कितनी बार 'कथन' निष्पादित करना है
-r N, --repeat =N कितनी बार टाइमर दोहराना है (डिफ़ॉल्ट 3)
-s S, --setup =S प्रारंभ में एक बार निष्पादित होने वाला विवरण (डिफ़ॉल्ट पास)
-v, --verbose कच्चे समय के परिणाम प्रिंट करें; अधिक अंकों की सटीकता के लिए दोहराएं
-h, --help एक संक्षिप्त उपयोग संदेश प्रिंट करें और बाहर निकलें

पहले इस्तेमाल किए गए उदाहरण कोड के समतुल्य कमांड लाइन निम्नलिखित है -

C:\Users\acer>python -m timeit -s "s = 0" "for x in range(100): s = s + x"
10000 loops, best of 3: 22.4 usec per loop

  1. पायथन मैथ ऑपरेटर्स:ए गाइड

    कोई फर्क नहीं पड़ता कि आप क्या बना रहे हैं, यह संभावना है कि आपके कोड में कहीं न कहीं नंबर आएंगे। आप किसी रेस्तरां ऐप के मेनू पर आइटम की कीमतों को स्टोर करने के लिए या मुद्रा विनिमय ऐप में विभिन्न मुद्राओं के बीच रूपांतरण करने के लिए संख्याओं का उपयोग कर सकते हैं। पायथन के शुरुआती आमतौर पर पूछते

  1. पायथन दुभाषिए:एक चरण-दर-चरण मार्गदर्शिका

    पायथन सीखने के लिए सुपर सुलभ है क्योंकि पायथन दुभाषिए ऑनलाइन मौजूद हैं, यह सुनिश्चित किए बिना कि आपके पास अपनी मशीन पर पायथन का सही संस्करण स्थापित है। इस लेख में, हम बात करते हैं कि पायथन इंटरप्रेटर क्या है और ऑनलाइन उपयोग के लिए उपलब्ध कुछ अधिक लोकप्रिय, शुरुआती-अनुकूल दुभाषियों की सूची बनाएं।

  1. पायथन में वैश्वीकरण

    इस लेख में, हम पायथन 3.x का उपयोग करके वैश्वीकरण और कार्यान्वयन में शामिल विभिन्न तकनीकों के बारे में जानेंगे। या पहले। वेक्टराइजेशन क्या है? वेक्टराइजेशन लूप के उपयोग के बिना सरणियों को लागू करने की एक तकनीक है। इसके बजाय किसी फ़ंक्शन का उपयोग करने से कोड के चलने के समय और निष्पादन समय को कुशलतापू