Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách đo thời gian trôi qua (elapsed time) trong Python

Đ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àmDùng choĐộ chính xácLưu ý
perf_counter()Benchmark, elapsed timeCao nhất (nano)Khuyến nghị Python 3.3+
process_time()CPU time của processCaoKhông tính sleep/wait
time()Wall-clock, timestampThấp (micro/ms)Bị ảnh hưởng đổi giờ hệ thống
clock()Đã deprecated-Xóa từ Python 3.8