Để đo thời gian thực thi của một đoạn mã hoặc hàm, có thể dùng time.clock() (Python 2) hoặc time.time(). Tuy nhiên, từ Python 3.3+, khuyến nghị dùng time.perf_counter() hoặc time.process_time() cho độ chính xác cao hơn. Module timeit cũng cung cấp công cụ thống kê mạnh mẽ.
Cách 1: Dùng time.perf_counter() (Khuyến nghị Python 3.3+)
import time
def my_function():
print("Hello")
start = time.perf_counter()
my_function()
end = time.perf_counter()
print(f"Thời gian thực thi: {end - start:.8f} giây")
Cách 2: Dùng module timeit (Để benchmark chính xác)
Module timeit chạy đoạn mã nhiều lần và trả về thống kê (min, max, trung bình), loại bỏ nhiễu hệ thống.
import timeit
def f(x):
return x * x
# Chạy 100,000 lần, lặp 3 lần
times = timeit.repeat("for x in range(100): f(x)",
setup="from __main__ import f",
number=100000,
repeat=3)
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]
Nhanh nhất: 2.052
Tóm tắt
- Đo nhanh một lần:
time.perf_counter() - Benchmark khoa học:
timeit - Tránh dùng:
time.clock()(đã deprecated từ Python 3.3, xóa từ 3.8)