Làm cách nào để in thời gian thực hiện bằng Python?

Python timeit() là một phương thức trong thư viện Python để đo thời gian thực thi của đ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 lấy 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 hiện. Giá trị mặc định là “vượt qua”
  • cài đặt. Điều này sẽ có các chi tiết thiết lập cần được thực hiện trước stmt. Giá trị mặc định là “vượt qua. ”
  • hẹn giờ. Điều 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ó
  • 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 import module như hình 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 hiện của câu lệnh mã đơn giản đầu ra = 10*5 và thời gian cần thiết để thực hiện nó là 0. 06127880399999999

Thời gian Nhiều dòng trong mã python

Có hai 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ã kèm theo dưới dạng chuỗi có 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 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

Đây là 2 phương thức timeit quan trọng

thời gian. default_timer(). Điều này sẽ trả về thời gian mặc định khi thực hiện

thời gian. lặp lại (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

________số 8

đầu ra

0.46715912400000004

ví dụ 2

default_timer() Ví dụ

import timeit 0

đầu ra

import timeit 1

ví dụ 3. thời gian. nói lại()

import timeit 2

đầu ra

import timeit 3

thời gian. repeat() hoạt động tương tự như timeit. timeit(), với sự khác biệt duy nhất nó nhận trong đố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

Trong Python, bạn có thể viết các đoạn mã khác nhau để thực hiện cùng một tác vụ. Tuy nhiên, việc viết mã hiệu quả, tiêu tốn ít chu kỳ CPU hơn và nhẹ trên bộ nhớ, là rất quan trọng đối với các ứng dụng cấp sản xuất. Mã được viết kém có thể khiến ứng dụng của bạn mất nhiều thời gian hơn để phản hồi đầu vào của người dùng. Có một số cách để đo chất lượng mã, chẳng hạn như tìm độ phức tạp về thời gian thông qua ký hiệu o lớn và tính toán bộ nhớ mà mã chiếm dụng. Một trong những cách để đo chất lượng mã là tính toán thời gian cần thiết để hoàn thành việc thực thi mã. Trong bài viết này, bạn sẽ thấy các cách khác nhau để đo thời gian thực thi của tập lệnh Python

Có ba phương pháp chính để tìm thời gian thực thi của tập lệnh Python

  1. Sử dụng mô-đun thời gian
  2. Sử dụng mô-đun timeit
  3. Sử dụng lệnh %%time (Chỉ trong Jupyter Notebook)

Để kiểm tra ba phương thức này, chúng ta sẽ viết hai hàm tính giai thừa của một số được truyền cho nó dưới dạng tham số

Trong tập lệnh bên dưới, hàm import timeit 49 sử dụng các lệnh gọi đệ quy để tính giai thừa của một số

import timeit 5

Trong tập lệnh tiếp theo của chúng tôi, chúng tôi xác định một hàm khác import timeit 60 sử dụng các phép lặp đơn giản để tính giai thừa của một số được truyền cho nó dưới dạng giá trị tham số

import timeit 4

Chúng ta sẽ sử dụng hai hàm này trong các phần tiếp theo, nơi chúng ta sẽ thực hiện ba phương pháp để tìm thời gian thực hiện. Mặc dù cả hai chức năng đều thực hiện cùng một tác vụ, nhưng bạn sẽ thấy rằng thời gian thực hiện của chúng sẽ khác nhau

Tìm thời gian thực hiện bằng mô-đun thời gian Python

Phương pháp đầu tiên để tìm thời gian thực thi của tập lệnh Python là thông qua phương pháp import timeit 61 của mô-đun thời gian. Về cơ bản, bạn cần gọi phương thức import timeit 61 trước khi mã bắt đầu. Phương thức import timeit 61 của mô-đun thời gian trả về thời gian hệ thống hiện tại. Tiếp theo, bạn gọi lại phương thức import timeit 61 sau khi mã hoàn thành thực thi. Cuối cùng, bạn trừ giá trị thời gian được tính trước khi bắt đầu mã từ giá trị thời gian được tính sau khi mã hoàn thành thực thi. Điều đó đủ đơn giản, phải không?

Đoạn script sau tính toán thời gian thực hiện cho hàm import timeit 49 để tính giai thừa của 2500

import timeit 6

đầu ra

# testing timeit() import timeit print(timeit.timeit('output = 10*5')) 4

GHI CHÚ. Nếu bạn gặp RecursionError. độ sâu đệ quy tối đa vượt quá khi so sánh, bạn có thể cần giảm the2500 xuống một số nhỏ hơn 1020

Đầu ra cho thấy hệ thống lấy 0. 00494 giây để thực thi hàm import timeit 49 tính giai thừa của 2500. Điều đó khá nhanh

Tương tự, tập lệnh sau tính toán thời gian thực hiện của hàm import timeit 60 khi giá trị tham số 2500 được truyền cho nó

# testing timeit() import timeit print(timeit.timeit('output = 10*5')) 7

đầu ra

# testing timeit() import timeit print(timeit.timeit('output = 10*5')) 8

Đầu ra cho thấy rằng import timeit 60 thậm chí còn nhanh hơn, chỉ mất 0. 00194 giây để tìm giai thừa của 2500

Mô-đun thời gian hữu ích khi bạn muốn tính thời gian thực hiện các tập lệnh lớn. Nếu thời gian thực thi của một đoạn mã cụ thể là một phần rất nhỏ của giây, mô-đun thời gian sẽ trả về 0. 0 vì thời gian mà mã cần để hoàn tất quá trình thực thi của nó quá nhỏ để có thể đo được bằng phương pháp import timeit 61

Hãy xem một ví dụ. Thay vì tính giai thừa của 2500, hãy tìm giai thừa của một số nhỏ hơn, 100, bằng cách sử dụng phương pháp import timeit 49. Chạy đoạn script sau

0.06127880399999999 2

đầu ra

0.06127880399999999 3

Đầu ra trả về 0. 0. Mặc dù mã thực sự mất một chút thời gian để thực thi, nhưng hàm import timeit 61 không thể đo được vì sự khác biệt giữa thời gian trước và sau khi thực thi hàm import timeit 49 là quá nhỏ

Tương tự, bạn có thể chạy hàm import timeit 60 để tính giai thừa của 100 và bạn sẽ lại thấy rằng thời gian thực hiện là 0. 0

Khi thời gian thực thi của mã quá nhỏ để có thể đo được, bạn có thể sử dụng mô-đun timeit của Python. thay thế

Nhận miễn phí Bộ công cụ dành cho nhà phát triển Python của chúng tôi

Tôi đã tập hợp Bộ công cụ dành cho nhà phát triển Python với hơn 100 tập lệnh Python dựng sẵn bao gồm cấu trúc dữ liệu, Pandas, NumPy, Seaborn, máy học, xử lý tệp, quét web và nhiều thứ khác - và tôi muốn bạn có bộ công cụ này miễn phí. Nhập địa chỉ email của bạn dưới đây và tôi sẽ gửi một bản sao theo cách của bạn

Làm cách nào để hiển thị thời gian thực hiện trong Python?

Để tính thời gian thực thi mã, mô-đun thời gian có thể được sử dụng. Lưu dấu thời gian ở đầu mã bắt đầu sử dụng time(). Lưu dấu thời gian ở cuối mã. Tìm sự khác biệt giữa điểm kết thúc và điểm bắt đầu, cho biết thời gian thực hiện .

Làm cách nào để lấy thời gian CPU trong Python?

Chúng tôi sử dụng phương thức time() được nhập từ mô-đun thời gian của python . Mô-đun thời gian trong python cung cấp các phương thức và chức năng khác nhau liên quan đến thời gian. Ở đây chúng tôi sử dụng thời gian. time() để lấy thời gian CPU hiện tại tính bằng giây.

Thời gian time() trả về trong Python là gì?

time() Hàm time() trả về số giây đã trôi qua kể từ epoch . Đối với hệ thống Unix, ngày 1 tháng 1 năm 1970, 00. 00. 00 tại UTC là kỷ nguyên (thời điểm bắt đầu thời gian).

Chủ đề