Hướng dẫn measure speed of code python - đo tốc độ của mã python


Để đo thời gian thực hiện của chương trình, hãy sử dụng các hàm thời gian.clock () hoặc thời gian.time (). Các tài liệu Python nói rằng chức năng này nên được sử dụng cho mục đích điểm chuẩn. & NBSP;

thí dụ

import time
t0= time.clock()
print("Hello")
t1 = time.clock() - t0
print("Time elapsed: ", t1 - t0) # CPU seconds elapsed (floating point)

Đầu ra

Điều này sẽ cung cấp cho đầu ra -

Time elapsed:  0.0009403145040156798

Bạn cũng có thể sử dụng mô -đun thời gian để phân tích thống kê thích hợp về thời gian thực hiện của đoạn mã. & nbsp; nó chạy đoạn trích nhiều lần và sau đó nó cho bạn biết thời gian chạy ngắn nhất mất bao lâu. Bạn có thể sử dụng nó như sau:

Thí dụ

def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)

Đầu ra

Điều này sẽ cung cấp cho đầu ra -

[2.0640320777893066, 2.0876040458679199, 2.0520210266113281]

Hướng dẫn measure speed of code python - đo tốc độ của mã python

Bạn cũng có thể sử dụng mô -đun thời gian để phân tích thống kê thích hợp về thời gian thực hiện của đoạn mã. & nbsp; nó chạy đoạn trích nhiều lần và sau đó nó cho bạn biết thời gian chạy ngắn nhất mất bao lâu. Bạn có thể sử dụng nó như sau:

  • Thí dụ
  • Cập nhật vào ngày 19 tháng 8 năm 2020 07:44:46
  • Câu hỏi và câu trả lời liên quan
  • Đo thời gian thực hiện của đoạn mã Python nhỏ (Timeit)
  • Thiết lập các đường cong tốc độ khác nhau với chức năng chuyển đổi thời gian CSS
  • Làm thế nào để tính thời gian thực thi của đoạn mã trong C ++?
  • Điều gì chặn Ruby, Python để có được tốc độ V8 của JavaScript?
  • Hiểu về chặn và bỏ chặn thực thi mã trong nút
  • Làm cách nào để có thời gian thực hiện chương trình Python?
  • Hiểu phương pháp thực hiện mã điều khiển sự kiện trong nút
  • Làm thế nào để có được mã trạng thái phản hồi trong Golang?
  • Làm thế nào để có được tốc độ liên kết Wi-Fi hiện tại trong Android?
  • Làm thế nào để có được phiên bản hiện tại của dự án iOS của tôi trong mã?
  • Làm thế nào để tìm thư mục thực hiện chương trình hiện tại trong Python?
  • Giao diện máy thu GNSS với Arduino để có tốc độ
  • Tốc độ và tốc độ điều chỉnh động cơ DC

Xác định các kịch bản để kiểm tra. ....

Phát triển và thực hiện các bài kiểm tra. ....

Kiểm tra tất cả các điểm cuối thích hợp. ....

Phân tích và kiểm tra lại. ....

Đo lường các số liệu chính xác. ....

Tối ưu hóa hiệu suất ..

Tốc độ của mã Python cho biết hiệu suất. Mô -đun thời gian trong Python được xây dựng và bạn có thể sử dụng nó cho mục đích này.

Python Timeit

import timeit
code_to_measure = '''
def func1():
    numbers = []
    for x in range(1000):
      numbers.append(x*2 + x**2)
'''
measure = timeit.timeit(stmt = code_to_measure, number = 10000)
print("Execution time for function func1: ", measure)
print()
code_to_measure = '''

Mô -đun thời gian là gì?

Với mô -đun & nbsp; ____ 29 & nbsp; chúng tôi nhắm mục tiêu một đoạn mã và nó sẽ chạy mã đó hàng triệu lần, để cung cấp cho chúng tôi giá trị phù hợp nhất về mặt thống kê cho thời gian thực hiện mã. Lưu ý rằng giá trị mặc định cho số lần mã được thực thi là 1000000.

Func2 mất nhiều thời gian hơn func1. Việc đo thời gian là tính bằng giây.

Execution time for function func1:  0.0016275793313980103

Execution time for function func2:  0.017717315815389156

** Process exited - Return Code: 0 **
Press Enter to exit terminal

Mã chính của thời gian

Đối tượng đo lường của người Viking thu thập thời gian. Đó là thời gian thống kê 10000 lần mã thực hiện nội bộ và có thời gian.

Ngoài ra, đọc

  • Bắt đầu sử dụng thư viện thời gian trong Python!

Có liên quan

Xác định các kịch bản để kiểm tra. ....

Phát triển và thực hiện các bài kiểm tra. ....

Kiểm tra tất cả các điểm cuối thích hợp. ....

Phân tích và kiểm tra lại. ....

Đo lường các số liệu chính xác. ....

Thực hiện

1. Nhập gói

Dưới đây là các gói được sử dụng trong bản demo này. & NBSP; Mô -đun Tracemalloc được sử dụng ở đây cung cấp số liệu thống kê về các khối bộ nhớ được phân bổ và cũng tính toán sự khác biệt giữa hai ảnh chụp nhanh để phát hiện rò rỉ bộ nhớ. Tôi đã sử dụng get_trated_memory () để có được kích thước hiện tại và kích thước đỉnh của các khối bộ nhớ.

import tracemalloc
import pandas as pd
import dask.dataframe as dd
import time

2. Xác định chức năng để sử dụng tracemalloc

Hàm đầu tiên là dừng truy tìm, nếu có, và bắt đầu truy tìm mới. Điều này đảm bảo rằng dấu vết của 2 khối mã không can thiệp vào nhau. Hàm thứ hai là tìm kích thước cực đại tính bằng MB của một khối mã được theo dõi.

def tracing_start():
    tracemalloc.stop()
    print("nTracing Status : ", tracemalloc.is_tracing())
    tracemalloc.start()
    print("Tracing Status : ", tracemalloc.is_tracing())
def tracing_mem():
    first_size, first_peak = tracemalloc.get_traced_memory()
    peak = first_peak/(1024*1024)
    print("Peak Size in MB - ", peak)

3. So sánh kích thước và thời gian cực đại cần thiết cho lần chạy

Các hàm theo dõi được tạo ở trên được gọi để đo kích thước bộ nhớ cực đại và thời gian cần thiết để chạy các lệnh.

A. Hoạt động trên các yếu tố của một danh sách

Các khối sau đây hiển thị hoạt động trên mỗi yếu tố của danh sách và lưu trữ kết quả vào một danh sách mới.

Phương pháp - 1

Mã Python:

Phương pháp - 2

tracing_start()
start = time.time()
sq_list1 = [elem + elem**2 for elem in range(1,1000)]
#print(sq_list1)
end = time.time()
print("time elapsed {} milli seconds".format((end-start)*1000))
tracing_mem()
#Result
Time elapsed:  0.0009403145040156798
0

B. Concatenation của chuỗi

Các khối sau đây cho thấy 2 phương pháp khác nhau để kết nối chuỗi

Phương pháp - 1

Time elapsed:  0.0009403145040156798
1
#Result
Time elapsed:  0.0009403145040156798
3

Phương pháp - 2

Time elapsed:  0.0009403145040156798
4
#Result
Time elapsed:  0.0009403145040156798
6
B. Concatenation của chuỗi

Các khối sau đây cho thấy 2 phương pháp khác nhau để kết nối chuỗi

Phương pháp - 1

Time elapsed:  0.0009403145040156798
7
#Result
Time elapsed:  0.0009403145040156798
9

Phương pháp - 2

def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
0
#Result
def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
2

B. Concatenation của chuỗi

Các khối sau đây cho thấy 2 phương pháp khác nhau để kết nối chuỗi

Phương pháp - 1

def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
3

#Result
def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
5

Phương pháp - 2

def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
6
#Result
def f(x):
  return x * x
 
import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
8

B. Concatenation của chuỗi

Các khối sau đây cho thấy 2 phương pháp khác nhau để kết nối chuỗi

  • C. Xóa các yếu tố trùng lặp khỏi danh sách
  • Các khối sau đây hiển thị 2 phương thức khác nhau để loại bỏ các phần tử trùng lặp khỏi danh sách
  • 4. Đọc tệp CSV vào DataFrame và nhóm theo hoạt động
  • Các khối sau đây hiển thị 2 phương thức khác nhau để đọc tệp CSV vào DataFrame. Cái đầu tiên là sử dụng gấu trúc và thứ hai là sử dụng dask. DASK là một thư viện linh hoạt để tính toán song song trong Python. Tài liệu có thể được tìm thấy tại https://dask.org/.

Sự kết luận

Trong bài viết này, chúng tôi đã thảo luận về cách tìm bộ nhớ được sử dụng trong khi chạy một khối mã trong Python. Chúng tôi đã thảo luận về các đoạn của 4 trường hợp sử dụng và được liệt kê thời gian thực hiện để thực hiện và bộ nhớ cực đại được tiêu thụ. Kết quả được tóm tắt dưới đây -

Làm thế nào để bạn kiểm tra tốc độ của mã python?

May mắn thay, có nhiều lựa chọn hơn nếu thời gian không dành cho bạn ...
Kiểm tra hiệu suất của vũ lực ..
Kiểm tra hiệu suất bằng thư viện thời gian ..
Kiểm tra hiệu suất bằng thư viện CPROFILE ..
Kiểm tra hiệu suất với các thư viện bên ngoài ..

Làm thế nào để Python tính toán thời gian thực hiện mã?

Mô -đun thời gian Python thường được sử dụng để đo thời gian thực hiện của các đoạn mã nhỏ.Chúng ta cũng có thể sử dụng hàm Timeit (), thực thi hàm ẩn danh với một số lần thực thi.Nó tạm thời tắt bộ sưu tập rác trong khi tính toán thời gian thực hiện.. We can also use the timeit() function, which executes an anonymous function with a number of executions. It temporarily turns off garbage collection while calculating the time of execution.

%% thời gian có nghĩa là gì trong Python?

%% Thời gian là một lệnh ma thuật.Đó là một phần của ipython.%% Thời gian in thời gian tường cho toàn bộ ô trong khi %thời gian cung cấp cho bạn thời gian cho dòng đầu tiên.Sử dụng %% thời gian hoặc %thời gian in 2 giá trị: thời gian CPU.prints the wall time for the entire cell whereas %time gives you the time for first line only. Using %%time or %time prints 2 values: CPU Times.

Làm thế nào để bạn kiểm tra hiệu quả mã trong Python?

Mẹo kiểm tra tải Python và thực tiễn tốt nhất..
Tạo một môi trường biệt lập cho thử nghiệm.Bạn muốn phá vỡ trang web hoặc ứng dụng của bạn trong quá trình thử nghiệm.....
Xác định các kịch bản để kiểm tra.....
Phát triển và thực hiện các bài kiểm tra.....
Kiểm tra tất cả các điểm cuối thích hợp.....
Phân tích và kiểm tra lại.....
Đo lường các số liệu chính xác.....
Tối ưu hóa hiệu suất ..