본문 바로가기
Python

Python - 파이썬 코드 실행 시간 측정 perf_counter, process_time 차이점

by 올엠 2024. 3. 2.
반응형

 파이썬 코드 실행 시간 측정

파이썬 코드를 작성하다 보면 특정 코드가 얼마나 걸리는지 확인하고 싶을 때가 있다. 이때 사용할 수 있는 함수가 time 라이브러리의 perf_counter()와 process_time()이다.

perf_counter, process_time 차이점

perf_counter()는 프로그램의 전체 실행 시간을 측정한다. 여기에는 프로그램이 실행되지 않고 대기하는 시간도 포함된다. 반면, process_time()은 프로그램이 실제 프로세싱(처리)된 시간만 측정한다.

아래 예제를 보자.

import time

def perf_proc():
    time.sleep(1)
    for value in range(1, 5):
        pass

start = time.perf_counter()
perf_proc()
end = time.perf_counter() - start
print(end)

start = time.process_time()
perf_proc()
end = time.process_time() - start
print(end)

코드를 사용할 때는 주의하시기 바랍니다. 자세히 알아보기

이 예제에서 perf_counter()는 1.0189821000000002, process_time()은 0.018982099999999997을 출력한다. perf_counter()는 sleep() 함수에 의해 1초 동안 대기한 시간이 포함되어 1초가 출력된다. 반면, process_time()은 sleep() 함수에 의해 대기한 시간이 포함되지 않아 0.02초가 출력된다.

 

사용법

위의 차이점을 이해하면 perf_counter()와 process_time()을 적절히 사용할 수 있다.

프로그램의 전체 실행 시간을 측정하고 싶다면 perf_counter()를 사용한다.

프로그램이 실제 프로세싱(처리)된 시간을 측정하고 싶다면 process_time()을 사용한다.

  • perf_counter()

perf_counter의 경우 프로그램 전체의 실행시간으로 계산한다. 

  • process_time()

프로그램이 실제 프로세싱(처리)된 시간으로 계산한다.

예를 들어, sleep() 함수를 사용하여 프로그램의 대기 시간을 측정하고 싶다면 perf_counter()를 사용한다. 반면, CPU 사용률을 측정하고 싶다면 process_time()을 사용한다.

반응형