먼저, 나중에 다양한 성능 테스트를 위한 기본 Python 함수를 작성해 보겠습니다.
def base_func(): for n in range(10000): print('当前n的值是:{}'.format(n))
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은 셀의 코드 실행 시간을 테스트할 수 있는 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는 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 함수와 같은 성능 테스트 도구를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!