Đôi khi, tôi thích thời gian phải mất bao lâu các phần mã của tôi chạy. Tôi đã kiểm tra rất nhiều trang web trực tuyến và đã thấy, nói chung, hai cách chính để thực hiện việc này. Một người đang sử dụng time.time
và người kia đang sử dụng timeit.timeit
.time.time vs. timeit.timeit
Vì vậy, tôi đã viết một kịch bản rất đơn giản để so sánh hai:
from timeit import timeit
from time import time
start = time()
for i in range(100): print('ABC')
print(time()-start, timeit("for i in range(100): print('ABC')", number=1))
Về cơ bản, nó lần phải mất bao lâu để in "ABC" 100 lần trong một vòng lặp for. Số bên trái là các kết quả cho time.time
và số bên phải là cho timeit.timeit
:
# First run
0.0 0.012654680972022981
# Second run
0.031000137329101562 0.012747430190149865
# Another run
0.0 0.011262325239660349
# Another run
0.016000032424926758 0.012740166697164025
# Another run
0.016000032424926758 0.0440628627381413
Như bạn thấy, đôi khi, time.time là nhanh hơn và đôi khi nó là chậm hơn. Đó là cách tốt hơn (chính xác hơn)?
'timeit' là lựa chọn tốt hơn cho các đoạn mã thời gian. Nó sử dụng 'time.time()' ('time.clock()' cho Windows) và vô hiệu hóa bộ thu gom rác. Ngoài ra, một thử nghiệm không thực sự đủ. – Blender
@Blender: 'timeit' sử dụng' time.perf_counter' bằng Python 3.3+ – jfs
@ J.F.Sebastian: Cảm ơn, tôi không biết điều đó. – Blender