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
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬 try-else절의 용도 (0) | 2021.12.13 |
---|---|
TypeError: a bytes-like object is required, not 'str' when writing to a file in Python3 (0) | 2021.12.13 |
파이썬 파일 확장자 .pyc .pyd .pyo가 의미하는 것 (0) | 2021.12.13 |
프로그램을 실행하거나 Python에서 시스템 명령을 호출하는 방법 (0) | 2021.12.13 |
Python 3에서 "python -m SimpleHTTPServer" 사용하는법 (0) | 2021.12.13 |