프로그래밍 언어/Python

Python 스크립트를 프로파일링 하는 방법

Rateye 2021. 12. 13. 00:29
728x90
반응형
질문 : Python 스크립트를 어떻게 프로파일 링 할 수 있습니까?

프로젝트 오일러 및 기타 코딩 콘테스트는 종종 최대 실행 시간을 갖거나 사람들은 특정 솔루션 실행 속도를 자랑합니다. 파이썬에서는 때때로 접근 방식이 다소 복잡합니다. 즉, 타이밍 코드를 __main__ 추가합니다.

Python 프로그램이 실행되는 데 걸리는 시간을 프로파일 링하는 좋은 방법은 무엇입니까?

답변

Python에는 cProfile 이라는 프로파일 러가 포함되어 있습니다. 총 실행 시간을 제공 할뿐만 아니라 각 함수의 시간을 개별적으로 계산하고 각 함수가 호출 된 횟수를 알려줌으로써 어디서 최적화해야하는지 쉽게 결정할 수 있습니다.

다음과 같이 코드 내에서 또는 인터프리터에서 호출 할 수 있습니다.

import cProfile
cProfile.run('foo()')

훨씬 더 유용하게 스크립트를 실행할 때 cProfile을 호출 할 수 있습니다.

python -m cProfile myscript.py

더 쉽게 만들기 위해 'profile.bat'라는 작은 배치 파일을 만들었습니다.

python -m cProfile %1

그래서 내가해야 할 일은 실행하는 것입니다.

profile euler048.py

그리고 나는 이것을 얻습니다.

1007 function calls in 0.061 CPU seconds

Ordered by: standard name
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    1    0.000    0.000    0.061    0.061 <string>:1(<module>)
 1000    0.051    0.000    0.051    0.000 euler048.py:2(<lambda>)
    1    0.005    0.005    0.061    0.061 euler048.py:2(<module>)
    1    0.000    0.000    0.061    0.061 {execfile}
    1    0.002    0.002    0.053    0.053 {map}
    1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler objects}
    1    0.000    0.000    0.000    0.000 {range}
    1    0.003    0.003    0.003    0.003 {sum}

편집 : Python Profiling 이라는 PyCon 2013의 좋은 비디오 리소스에 대한 링크 업데이트
또한 YouTube를 통해 .

출처 : https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script
728x90
반응형