2013-01-22 34 views
27

तो जावा में, हम How to measure time taken by a function to executeपायथन में कोड की रेखाओं के बीच किए गए समय को मापने के लिए कैसे?

लेकिन यह पाइथन में कैसे किया जा सकता है? कोड की रेखाओं के बीच समय शुरू और समाप्ति समय को मापने के लिए? कुछ है कि इस करता है:

import some_time_library 

starttime = some_time_library.some_module() 
code_tobe_measured() 
endtime = some_time_library.some_module() 

time_taken = endtime - starttime 

उत्तर

52

आप उस के लिए time.clock उपयोग कर सकते हैं।

import time 
start = time.clock() 
#your code here  
print time.clock() - start 

पहला कॉल टाइमर चालू करता है, और दूसरा कॉल बताता है कि कितने सेकंड बीत चुके हैं।

timeit और profile की तरह बेहतर रूपरेखा उपकरण हैं, तथापि यह एक समय को मापने और यह क्या अपना समय इस तरह आप `time.clock() का उपयोग नहीं है के बारे में

+26

पूछ रहे हैं', और 'है .clock() 'यूनिक्स पर CPU समय मापता है लेकिन विंडोज़ पर दीवार का समय। 'Time.time()' का उपयोग करना बेहतर है जहां व्यवहार ओएस के साथ भिन्न नहीं होता है। http://stackoverflow.com/questions/85451/python-time-clock-vs-time-time-accuracy – Tim

+2

अच्छा अवलोकन, @Tim। हालांकि, एक ही प्रश्न पर एक और पोस्ट python डॉक्टर को time.clock() पर उद्धृत करता है कि "यह पाइथन या समय एल्गोरिदम बेंचमार्किंग के लिए उपयोग करने का कार्य है"। मुझे लगता है कि यह वास्तव में मापने के लिए आप क्या चाहते हैं के सवाल पर जाता है। –

+0

time.time() के बारे में एक बहुत ही बुरी चीज यह है कि यह समय sunchronization ntpdate आदि से प्रभावित है। मैं कहूंगा कि time.clock() इस वजह से एकमात्र विश्वसनीय विकल्प होगा –