एक छोटी सुविधा वर्ग की मदद से, आप इस तरह से इंडेंटेड लाइनों में बिताए गए समय को माप सकते हैं :
with CodeTimer():
line_to_measure()
another_line()
जो इंडेंटेड लाइन को अंजाम देने के बाद निम्नलिखित दिखाएगा:
Code block took: x.xxx ms
अद्यतन: आप अब pip install linetimer
और फिर के साथ वर्ग प्राप्त कर सकते हैं from linetimer import CodeTimer
। इस GitHub परियोजना को देखें ।
उपरोक्त वर्ग के लिए कोड:
import timeit
class CodeTimer:
def __init__(self, name=None):
self.name = " '" + name + "'" if name else ''
def __enter__(self):
self.start = timeit.default_timer()
def __exit__(self, exc_type, exc_value, traceback):
self.took = (timeit.default_timer() - self.start) * 1000.0
print('Code block' + self.name + ' took: ' + str(self.took) + ' ms')
आप तब कोड ब्लॉकों को नाम दे सकते हैं जिन्हें आप मापना चाहते हैं:
with CodeTimer('loop 1'):
for i in range(100000):
pass
with CodeTimer('loop 2'):
for i in range(100000):
pass
Code block 'loop 1' took: 4.991 ms
Code block 'loop 2' took: 3.666 ms
और उन्हें घोंसला दें:
with CodeTimer('Outer'):
for i in range(100000):
pass
with CodeTimer('Inner'):
for i in range(100000):
pass
for i in range(100000):
pass
Code block 'Inner' took: 2.382 ms
Code block 'Outer' took: 10.466 ms
इसके संबंध में timeit.default_timer()
, यह ओएस और पायथन संस्करण पर आधारित सर्वश्रेष्ठ टाइमर का उपयोग करता है, इस उत्तर को देखें ।
time.clock()
, औरtime.clock()
यूनिक्स पर सीपीयू समय को मापते हैं लेकिन विंडोज पर दीवार समय यह उपयोग करना बेहतर हैtime.time()
जहां व्यवहार ओएस के साथ भिन्न नहीं होता है। stackoverflow.com/questions/85451/…