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

WBOY
풀어 주다: 2023-05-10 12:40:13
앞으로
966명이 탐색했습니다.

기본 테스트 기능

먼저, 나중에 다양한 성능 테스트를 위한 기본 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!