Python Timeit() với các ví dụ
Là gì Python Thời gian()?
Python timeit () là một phương pháp trong Python thư viện để đo thời gian thực thi của đoạn mã đã cho. các Python thư viện chạy câu lệnh mã 1 triệu lần và cung cấp thời gian tối thiểu lấy từ tập hợp các đoạn mã nhất định. Python timeit() là một phương pháp hữu ích giúp kiểm tra hiệu suất của mã.
cú pháp
timeit.timeit(stmt, setup,timer, number)
Thông số
- stmt: Thao tác này sẽ lấy mã mà bạn muốn đo thời gian thực thi. Giá trị mặc định là “vượt qua”.
- thiết lập: Điều này sẽ có các chi tiết thiết lập cần được thực hiện trước khi stmt. Giá trị mặc định là “pass”.
- bộ đếm thời gian: Cái này sẽ có giá trị bộ đếm thời gian, timeit() đã được đặt giá trị mặc định và chúng ta có thể bỏ qua nó.
- con số: Stmt sẽ thực thi theo số được đưa ra ở đây. Giá trị mặc định là 1000000.
Để làm việc với timeit(), chúng ta cần nhập mô-đun, như hiển thị bên dưới:
import timeit
Ví dụ đầu tiên
Đây là một ví dụ đơn giản về hàm timeit()
Mã ví dụ 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
Đầu ra:
0.06127880399999999
Chúng ta đã thấy một ví dụ đơn giản cung cấp cho chúng ta thời gian thực thi của câu lệnh mã đơn giản đầu ra = 10*5 và thời gian cần thiết để thực thi nó là 0.06127880399999999.
Thời gian Nhiều dòng trong mã python
Có hai cách để thực thi nhiều dòng mã trong timeit.timeit(): phân tách các dòng bằng dấu chấm phẩy hoặc đặt mã dưới dạng chuỗi trong dấu ngoặc kép ba.
Dưới đây là những ví dụ cho thấy hoạt động của nó.
Ví dụ 1: Sử dụng dấu chấm phẩy
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Đầu ra:
The time taken is 0.137031482
Ví dụ 2: Sử dụng dấu ngoặc kép
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Đầu ra:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
thời gian - Phương pháp
Dưới đây là 2 phương pháp timeit quan trọng
timeit.default_timer() : Điều này sẽ trả về thời gian mặc định khi được thực thi.
timeit.repeat (stmt, thiết lập, hẹn giờ, lặp lại, số) : giống như timeit() , nhưng với lặp lại timeit() được gọi là số lần lặp lại được đưa ra.
Chương trình ví dụ 1
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.timeit(stmt=testcode, setup=import_module))
Đầu ra:
0.46715912400000004
Ví dụ 2
default_timer() Ví dụ
# testing timeit() import timeit import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() print("The start time is :",starttime) test() print("The time difference is :", timeit.default_timer() - starttime)
Đầu ra:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Ví dụ 3: timeit.repeat()
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
Đầu ra:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() hoạt động tương tự như hàm timeit.timeit(), với điểm khác biệt duy nhất là nó có đối số lặp lại và trả về thời gian thực hiện ở định dạng mảng với các giá trị theo số lặp lại.
Thực thi hàm tính thời gian timeit.timeit() bên trong giao diện dòng lệnh
Cú pháp để thực thi hàm của bạn bên trong timeit() trên dòng lệnh như sau:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Tham số dòng lệnh:
- -n N: số lần bạn muốn code thực thi.
- -r N: số lần bạn muốn hàm timeit() lặp lại
- -s S: phần này sẽ thiết lập các chi tiết sẽ được thực thi trước khi thực thi mã.
- -t: đối với điều này, bạn có thể sử dụng time.time()
- -c: để làm điều này, bạn có thể sử dụng time.clock()
- -h: để được giúp đỡ
- câu lệnh mã: Chi tiết mã.
Ví dụ
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Một cách khác bạn có thể thực thi bên trong dòng lệnh như dưới đây:
Ví dụ
>>> import timeit >>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b')) The time taken is 0.15048536300000137 >>>
Tại sao timeit() là cách tốt nhất để đo thời gian thực hiện của Python mã số?
Dưới đây là một số lý do khiến chúng tôi coi timeit() là cách tốt nhất để đo thời gian thực hiện.
- Nó chạy câu lệnh mã 1 triệu lần, đó là giá trị mặc định và từ đó, nó sẽ trả về cho bạn thời gian tối thiểu đã thực hiện. Bạn cũng có thể tăng/giảm 1 triệu bằng cách đặt số đối số trong hàm time().
- Trong khi thực hiện kiểm tra, việc thu gom rác luôn bị vô hiệu hóa bởi hàm time().
- timeit() nội bộ sẽ tính thời gian chính xác theo hệ điều hành của bạn đang được sử dụng. Ví dụ: nó sẽ sử dụng time.clock() cho Windows hệ điều hành và time.time() cho mac và Linux.
Tổng kết
Timeit() được sử dụng để lấy thời gian thực hiện cho đoạn mã nhỏ đã cho
Các tham số được sử dụng với timeit()
- stmt: Điều này sẽ lấy mã bạn muốn đo thời gian thực hiện
- thiết lập: Phần này sẽ có các chi tiết thiết lập cần được thực hiện trước khi stmt
- bộ đếm thời gian: Cái này sẽ có giá trị bộ đếm thời gian, timeit() đã có giá trị mặc định được đặt và chúng ta có thể bỏ qua nó.
- number: Stmt sẽ thực thi theo số được đưa ra ở đây.