Đo Thời Gian Thực Thi Code Trong Python Với Module timeit

Module timeit là một công cụ mạnh mẽ trong Python giúp bạn đo lường thời gian thực thi của các đoạn mã. Dưới đây là cách sử dụng module này để đảm bảo mã của bạn hoạt động hiệu quả và tìm ra những đoạn code tối ưu nhất.

1. Cài Đặt và Nhập Module timeit

Module timeit là một phần của thư viện chuẩn trong Python, vì vậy bạn không cần cài đặt thêm gì. Để sử dụng, chỉ cần nhập module này vào mã của bạn:

import timeit

2. Đo Thời Gian Chạy Một Đoạn Code

Để đo thời gian chạy của một đoạn mã, bạn có thể sử dụng timeit.timeit() với mã nguồn được truyền vào dưới dạng chuỗi. Dưới đây là ví dụ cơ bản:

import timeit

# Đo thời gian chạy của một đoạn code
code_to_test = """
result = sum(range(100))
"""

# Đo thời gian chạy
execution_time = timeit.timeit(code_to_test, number=10000)

print(f"Thời gian thực thi: {execution_time} giây")

Trong ví dụ này:

  • code_to_test: Đây là đoạn mã mà bạn muốn đo thời gian thực thi. Đoạn mã này sẽ được chạy nhiều lần.
  • number: Tham số này xác định số lần đoạn mã sẽ được thực thi. Ở đây, number=10000 nghĩa là đoạn mã sẽ được thực thi 10.000 lần để có kết quả chính xác hơn.
  • execution_time: Đây là tổng thời gian cần thiết để thực thi đoạn mã.

3. Đo Thời Gian Chạy Của Một Hàm

Bạn cũng có thể đo thời gian chạy của một hàm cụ thể bằng cách truyền hàm đó vào timeit.timeit():

import timeit

def test_function():
    result = sum(range(100))

# Đo thời gian chạy của hàm test_function
execution_time = timeit.timeit(test_function, number=10000)

print(f"Thời gian thực thi: {execution_time} giây")

4. So Sánh Hiệu Suất

Sử dụng timeit không chỉ giúp bạn đo thời gian chạy của một đoạn mã đơn lẻ, mà còn cho phép bạn so sánh hiệu suất của các đoạn mã khác nhau:

import timeit

code1 = """
result = [i**2 for i in range(100)]
"""
code2 = """
result = list(map(lambda x: x**2, range(100)))
"""

time1 = timeit.timeit(code1, number=10000)
time2 = timeit.timeit(code2, number=10000)

print(f"Thời gian thực thi code1: {time1} giây")
print(f"Thời gian thực thi code2: {time2} giây")

Kết Luận

Module timeit là công cụ tuyệt vời để đo thời gian thực thi của các đoạn mã hoặc hàm trong Python. Việc sử dụng timeit giúp bạn hiểu rõ hơn về hiệu suất của mã và tìm ra cách tối ưu hóa tốt nhất cho ứng dụng của mình.