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

Cách viết hàm đo thời gian thực thi của một hàm trong Python

Để đ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)