프로그래밍/Python

[Python] 프로파일링 (실행시간, 특정함수 시간, 실행속도 확인)

Beginner:) 2021. 8. 9.
320x100

프로젝트를 수행하다 보면 해당 모듈의 실행시간을 알고싶을 때가 있다.

 

아래의 예를 들어본다.

 

import time

def A():
    time.sleep(1)

def B():
    time.sleep(2)
    
def C():
    time.sleep(3)
    
A()
B()
C()
print("done")

 

위는 예시일뿐 실제 프로젝트에서는 각 함수나 모듈의 실행시간을 알기 힘들다.

 

파이썬에는 cProfile이라는 프로파일러가 기본적으로 존재한다.

 

아래는 위 코드를 똑같이 실행하는 명령어와 결과물이다.

 

 

보면 test.py 스크립트(모듈)는 6초정도, 각 함수들은 1, 2, 3초 정도의 시간이 측정되었다.

 

ncalls - 호출횟수

tottime - 함수가 실행되는데의 시간

percall - 함수를 호출하는데에 평균시간 ( tottime/ncalls )

cumtime - 함수실행하는데의 누적시간

percall - 함수실행 누적 평균시간 ( cumtime/ncalls )

 

 

옵션으로 내림/오름차순 정렬, 파일로 저장등이 있다.

 

https://docs.python.org/ko/3/library/profile.html

 

반응형

댓글