Làm thế nào để bạn kiểm tra số phút trong python?
Để đo lường hiệu suất của mã, chúng ta cần tính thời gian mà tập lệnh/chương trình cần để thực thi. Việc đo lường thời gian thực thi của một chương trình hoặc các phần của chương trình sẽ phụ thuộc vào hệ điều hành, phiên bản Python của bạn và ý nghĩa của từ 'thời gian' Show
Trước khi tiếp tục, trước tiên, hãy hiểu thời gian là gì Mục lục
Thời gian treo tường vs. thời gian CPUChúng ta thường bắt gặp hai thuật ngữ để đo thời gian thực hiện. Thời gian đồng hồ treo tường và thời gian CPU Vì vậy, điều cần thiết là xác định và phân biệt hai thuật ngữ này
Sự khác biệt giữa Wall time và CPU time có thể xảy ra do sự phụ thuộc vào kiến trúc và thời gian chạy, e. g. , độ trễ được lập trình hoặc chờ tài nguyên hệ thống khả dụng Ví dụ, một chương trình báo cáo rằng nó đã sử dụng “CPU time 0m0. 2s, Thời gian treo tường 2m4s”. Nó có nghĩa là chương trình đã hoạt động trong 2 phút 4 giây. Tuy nhiên, bộ xử lý của máy tính chỉ tiêu tốn 0. 2 giây thực hiện phép tính cho chương trình. Có thể chương trình đang chờ một số tài nguyên có sẵn Khi bắt đầu mỗi giải pháp, tôi đã liệt kê rõ ràng loại thời gian mà mỗi phương pháp đo lường Vì vậy, tùy thuộc vào lý do tại sao bạn đo thời gian thực hiện chương trình của mình, bạn có thể chọn tính toán thời gian Tường hoặc CPU Cách Đo lường Thời gian thực thi bằng PythonMô-đun thời gian của Python cung cấp các chức năng liên quan đến thời gian khác nhau, chẳng hạn như nhận thời gian hiện tại và tạm dừng thực thi chuỗi cuộc gọi trong số giây đã cho. Các bước dưới đây trình bày cách sử dụng mô-đun thời gian để tính toán thời gian thực hiện chương trình
Thí dụ. Nhận thời gian thực hiện chương trình tính bằng giâySử dụng giải pháp này trong các trường hợp sau. –
Ghi chú. Giải pháp này đo Wall time, tôi. e. , tổng thời gian đã trôi qua, không phải thời gian của CPU
đầu ra Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds Ghi chú. Nó sẽ báo thêm thời gian nếu máy bạn đang bận công việc khác. Nếu tập lệnh của bạn đang chờ một số tài nguyên, thời gian thực hiện sẽ tăng lên vì thời gian chờ sẽ được thêm vào kết quả cuối cùng Nhận thời gian thực hiện tính bằng mili giâySử dụng ví dụ trên để lấy thời gian thực hiện tính bằng giây, sau đó nhân nó với 1000 để có kết quả cuối cùng tính bằng mili giây Thí dụ
đầu ra Sum of first 1 million numbers is: 499999500000 Nhận thời gian thực hiện tính bằng phútSử dụng ví dụ trên để lấy thời gian thực hiện tính bằng giây, sau đó chia cho 60 để có kết quả cuối cùng tính bằng phút Thí dụ
đầu ra ________số 8Bạn có muốn định dạng tốt hơn? Sử dụng hàm strftime() để chuyển đổi thời gian ở định dạng dễ đọc hơn như (hh-mm-ss) giờ-phút-giây
đầu ra 0Nhận thời gian thực thi CPU của chương trình bằng cách sử dụng # get execution time in milliseconds res = et - st final_res = res * 1000 print('Execution time:', final_res, 'milliseconds')3 4 sẽ đo thời gian của đồng hồ treo tường. Nếu bạn muốn đo thời gian thực hiện CPU của một chương trình, hãy sử dụng 5 thay vì 4Sử dụng giải pháp này nếu bạn không muốn đưa thời gian chờ tài nguyên vào kết quả cuối cùng. Hãy xem cách lấy thời gian thực thi CPU của chương trình 5đầu ra 6Ghi chú Vì chúng ta đang tính toán thời gian thực hiện CPU của một chương trình, như bạn có thể thấy, chương trình đã hoạt động trong hơn 3 giây. Tuy nhiên, 3 giây đó không được thêm vào thời gian của CPU vì CPU là lý tưởng và bộ xử lý của máy tính chỉ tiêu tốn 0. 23 giây thực hiện phép tính cho chương trình mô-đun timeit để đo thời gian thực thi mãMô-đun timeit Python cung cấp một cách đơn giản để định thời gian cho một đoạn mã Python nhỏ. Nó có cả Giao diện dòng lệnh cũng như giao diện có thể gọi được. Nó tránh được nhiều bẫy phổ biến để đo thời gian thực hiện mô-đun timeit hữu ích trong các trường hợp sau. –
Hàm 7. – 8 trả về thời gian (tính bằng giây) để thực thi mã số lầnSum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds0 Ghi chú. Giải pháp này đo Wall time, tôi. e. , tổng thời gian đã trôi qua, không phải thời gian của CPU Các bước dưới đây cho thấy cách đo thời gian thực thi mã bằng mô-đun timeit
Thí dụ. Đo thời gian thực hiện của một chức năngSau đây chúng ta sẽ tính thời gian thực hiện của hàm ‘addition()’. Chúng ta sẽ chạy hàm Sum of first 1 million numbers is: 4999995000002 năm lần để lấy thời gian thực hiện trung bình Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds1 đầu ra Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds2 Ghi chú Nếu bạn chạy code tốn thời gian với giá trị mặc định là Sum of first 1 million numbers is: 4999995000003 thì sẽ rất mất thời gian. Vì vậy, hãy gán ít giá trị hơn cho đối số Sum of first 1 million numbers is: 4999995000003 Hoặc quyết định bạn muốn đo bao nhiêu mẫu để có được thời gian thực thi mã chính xác
Đo thời gian thực hiện của một dòng mãChạy lệnh Sum of first 1 million numbers is: 4999995000007 trên sổ ghi chép dòng lệnh hoặc jupyter để biết thời gian thực hiện của một dòng mã Thí dụ. Sử dụng Sum of first 1 million numbers is: 4999995000007 ngay trước dòng mã Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds3 Ngoài ra, chúng tôi có thể tùy chỉnh lệnh bằng các tùy chọn khác nhau để nâng cao cấu hình và nắm bắt thời gian thực hiện chính xác hơn
Thí dụ. Tùy chỉnh hoạt động của cấu hình thời gian thành 10 lần chạy và 20 vòng lặp trong mỗi lần chạy Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds4 Đo thời gian thực hiện của nhiều dòng mãSử dụng lệnh 3, chúng ta có thể đo thời gian thực thi của nhiều dòng mã. Các tùy chọn lệnh sẽ giữ nguyênGhi chú. bạn cần thay thế tỷ lệ phần trăm đơn ( 4) bằng tỷ lệ phần trăm kép ( 5) trong lệnh timeit để lấy thời gian thực thi của nhiều dòng mãThí dụ Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds5 Mô-đun DateTime để xác định thời gian thực thi của tập lệnhNgoài ra, bạn có thể sử dụng mô-đun Datetime để đo thời gian chạy chương trình. Sử dụng các bước dưới đây.
Ghi chú. Giải pháp này đo Wall time, tôi. e. , tổng thời gian đã trôi qua, không phải thời gian của CPU Thí dụ Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds6 đầu ra Sum of first 1 million numbers is: 499999500000 Execution time: 3.125561475753784 seconds7 Sự kết luậnPython cung cấp một số chức năng để lấy thời gian thực thi mã. Ngoài ra, chúng tôi đã tìm hiểu sự khác biệt giữa thời gian của Đồng hồ treo tường và thời gian của CPU để hiểu thời gian thực thi nào chúng tôi cần đo |