Python Timeit () là gì?
Python timeit () là một phương thức trong thư viện Python để đo thời gian thực thi được thực hiện bởi đoạn mã đã cho. Thư viện Python chạy câu lệnh mã 1 triệu lần và cung cấp thời gian tối thiểu được thực hiện từ bộ đoạn mã đã cho. Python timeit () là một phương thức 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 : Điều này sẽ lấy mã mà bạn muốn đo thời gian thực thi. Giá trị mặc định là "pass".
- thiết lập : Điều này sẽ 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".
- timer : Điều này sẽ có giá trị hẹn giờ, timeit () đã có giá trị mặc định được đặt và chúng ta có thể bỏ qua nó.
- number : stmt sẽ thực hiện 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ư hình dưới đây:
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 timeitprint(timeit.timeit('output = 10*5'))
Đầu ra:
0.06127880399999999
Chúng ta đã thấy một ví dụ đơn giản cho chúng ta thời gian thực thi của đầu ra câu lệnh mã đơn giản = 10 * 5 và thời gian thực thi nó là 0,06127880399999999.
Định thời gian Nhiều dòng trong mã python
Có hai cách, bạn có thể thực thi nhiều dòng mã trong timeit.timeit (), sử dụng dấu chấm phẩy hoặc bằng cách lưu mã được bao quanh dưới dạng một chuỗi với ba dấu ngoặc kép.
Dưới đây là các ví dụ cho thấy hoạt động của nó.
Ví dụ 1: Sử dụng dấu chấm phẩy
import timeitprint("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 timeitimport_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.pyThe time taken is 0.182619178
thời gian - Phương pháp:
Đây, là 2 phương pháp thời gian 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, setup, timer, repeat, number) : giống như timeit (), nhưng khi lặp lại timeit () được gọi là số lần lặp lại được đưa ra.
Ví dụ chương trình 1:
# testing timeit()import timeitimport_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:
Ví dụ default_timer ()
# testing timeit()import timeitimport randomdef 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.220261875The time difference is : 0.0004737320000000045
Ví dụ 3: timeit.repeat ()
# testing timeit()import timeitimport_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 sự khác biệt duy nhất là hàm lặp lại và trả về thời gian thực thi ở định dạng mảng với các giá trị theo số lặp.
Thực thi hàm định thời 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 mã thực thi.
- -r N: số lần bạn muốn hàm timeit () lặp lại
- -s S: điều này sẽ có các chi tiết thiết lập sẽ được thực thi trước khi thực thi mã.
- -t: đối với điều này, bạn có thể tận dụng time.time ()
- -c: đối với điều này, bạn có thể tận dụng time.clock ()
- -h: để được giúp đỡ
- câu lệnh mã: Chi tiết mã.
Thí 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 hiện bên trong dòng lệnh như được hiển thị bên dưới:
Thí 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 thi của mã Python?
Dưới đây là một số lý do tại sao chúng tôi coi timeit () là cách tốt nhất để đo thời gian thực thi.
- 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, tính năng thu gom rác bị vô hiệu hóa mọi lúc bởi hàm time ().
- timeit () nội bộ lấy 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 hệ điều hành Windows và time.time () cho mac và Linux.
Tóm lược
Timeit () được sử dụng để lấy thời gian thực thi cho đoạn mã nhỏ đã cho
Các tham số được sử dụng với timeit ()
- stmt: Thao tác này sẽ lấy mã bạn muốn đo thời gian thực thi
- thiết lập: Điều này sẽ có chi tiết thiết lập cần được thực hiện trước khi stmt
- timer: Điều này sẽ có giá trị hẹn giờ, timeit () đã có giá trị mặc định được đặt và chúng ta có thể bỏ qua nó.
- number: stmt sẽ thực hiện theo số được đưa ra ở đây.