>  기사  >  백엔드 개발  >  메모리 시간을 실행하는 Python 함수와 같은 성능 테스트 도구를 사용하는 방법

메모리 시간을 실행하는 Python 함수와 같은 성능 테스트 도구를 사용하는 방법

WBOY
WBOY앞으로
2023-05-10 12:40:13919검색

기본 테스트 기능

먼저, 나중에 다양한 성능 테스트를 위한 기본 Python 함수를 작성해 보겠습니다.

def base_func():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

memory_profiler process

memory_profiler는 Python의 비표준 라이브러리이므로 여기에 pip를 사용하여 설치됩니다. 프로세스를 모니터링하고 메모리 사용량을 이해하는 등의 작업을 수행할 수 있습니다.

pip install memory_profiler

memory_profiler 라이브러리를 설치한 후 주석을 직접 사용하여 테스트해 보세요.

from memory_profiler import profile
@profile
def base_func1():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
base_func1()
# Line #    Mem usage    Increment  Occurrences   Line Contents
# =============================================================
#     28     45.3 MiB     45.3 MiB           1   @profile
#     29                                         def base_func():
#     30     45.3 MiB      0.0 MiB       10001       for n in range(10000):
#     31     45.3 MiB      0.0 MiB       10000           print('当前n的值是:{}'.format(n))

반환된 데이터 결과로 볼 때 현재 기능을 실행하는 데 45.3MiB의 메모리가 사용됩니다.

timeit 시간 사용법

timeit은 셀의 코드 실행 시간을 테스트할 수 있는 Python 내장 모듈이므로 별도로 설치할 필요가 없습니다.

import timeit
def base_func2():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
res = timeit.timeit(base_func2,number=5)
print('当前的函数的运行时间是:{}'.format(res))
# 当前的函数的运行时间是:0.9675800999999993

위 함수의 반환 결과에 따르면 함수의 실행 시간은 0.96초입니다.

line_profiler 라인 코드 감지

함수의 로컬 실행 시간만 감지해야 하는 경우, 각 코드 줄의 실행 시간을 감지할 수 있는 line_profiler를 사용할 수 있습니다.

line_profiler는 Python의 비표준 라이브러리입니다. pip를 사용하여 설치할 수 있습니다.

pip install line_profiler

가장 쉬운 사용 방법은 테스트해야 할 기능을 직접 추가하는 것입니다.

def base_func3():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
from line_profiler import LineProfiler
lp = LineProfiler()
lp_wrap = lp(base_func3)
lp_wrap()
lp.print_stats()
# Line #      Hits         Time  Per Hit   % Time  Line Contents
# ==============================================================
#     72                                           def base_func3():
#     73     10001     162738.0     16.3      4.8      for n in range(10000):
#     74     10000    3207772.0    320.8     95.2          print('当前n的值是:{}'.format(n))

실행 결과에서 각 코드 줄의 실행 시간과 비율을 확인할 수 있습니다. 여기서 시간 단위는 미묘합니다.

심박수 시각적 감지

심박수에서 가장 권장되는 점은 심박수를 감지하는 것처럼 웹 페이지에서 프로그램의 실행 과정을 감지할 수 있다는 점입니다. 동시에 비표준 라이브러리이기도 하며, pip를 사용하여 설치합니다.

pip install heartrate
import heartrate
heartrate.trace(browser=True)
def base_func4():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

실행 후 콘솔은 다음 로그를 인쇄합니다:

#  * Serving Flask app "heartrate.core" (lazy loading)
#  * Environment: production
#    WARNING: This is a development server. Do not use it in a production deployment.
#    Use a production WSGI server instead.
#  * Debug mode: off

그리고 자동으로 브라우저 주소: http://127.0.0.1:9999

메모리 시간을 실행하는 Python 함수와 같은 성능 테스트 도구를 사용하는 방법

를 엽니다.

위 내용은 메모리 시간을 실행하는 Python 함수와 같은 성능 테스트 도구를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제