Đo thời gian trôi qua (wall-clock time) giữa hai điểm trong chương trình. Khuyến nghị dùng time.perf_counter() (Python 3.3+) cho độ chính xác cao nhất.
Cách 1: time.perf_counter() - Chuẩn cho benchmark
import time
start = time.perf_counter()
print("Hello")
end = time.perf_counter()
print(f"Thời gian trôi qua: {end - start:.8f} giây")
# Kết quả: ~0.00001234 giây
Cách 2: time.time() - Đơn giản, độ phân giải thấp hơn
import time
start = time.time()
# ... code cần đo ...
end = time.time()
print("Elapsed:", end - start)
Cách 3: Module timeit - Thống kê nhiều lần chạy
Dùng cho benchmark hàm/đoạn code, chạy nhiều lần trả về min/max/trung bình.
import timeit
def f(x):
return x * x
times = timeit.repeat("for x in range(100): f(x)",
setup="from __main__ import f",
number=100000,
repeat=5)
print("Kết quả (giây):", times)
print("Nhanh nhất:", min(times))
Kết quả mẫu
Kết quả (giây): [2.064, 2.088, 2.052, 2.070, 2.060]
Nhanh nhất: 2.052
So sánh các hàm time
| Hàm | Dùng cho | Độ chính xác | Lưu ý |
|---|---|---|---|
perf_counter() | Benchmark, elapsed time | Cao nhất (nano) | Khuyến nghị Python 3.3+ |
process_time() | CPU time của process | Cao | Không tính sleep/wait |
time() | Wall-clock, timestamp | Thấp (micro/ms) | Bị ảnh hưởng đổi giờ hệ thống |
clock() | Đã deprecated | - | Xóa từ Python 3.8 |