ด้วยความช่วยเหลือของคลาสอำนวยความสะดวกขนาดเล็กคุณสามารถวัดเวลาที่ใช้ในเส้นเยื้องได้ดังนี้:
with CodeTimer():
line_to_measure()
another_line()
ซึ่งจะแสดงสิ่งต่อไปนี้หลังจากบรรทัดที่เยื้องเสร็จสิ้นการดำเนินการ:
Code block took: x.xxx ms
UPDATE:ตอนนี้คุณจะได้รับการเรียนด้วยแล้ว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()
มันใช้ตัวจับเวลาที่ดีที่สุดตามเวอร์ชัน OS และ Python ดูคำตอบนี้
time.clock()
และtime.clock()
วัดเวลา CPU บน Unix แต่เป็นเวลาติดผนังบน Windows ควรใช้ในtime.time()
กรณีที่พฤติกรรมไม่แตกต่างกันไปตาม OS stackoverflow.com/questions/85451/…