Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 time.perf_counter() 함수 완벽 정리 – 코드 실행 시간 측정 방법

이 튜토리얼에서는 파이썬의 time.perf_counter() 메서드에 대해 자세히 알아보겠습니다.

time.perf_counter()는 성능 측정을 위해 설계된 고해상도 타이머로, 초 단위의 시간을 float(부동소수점) 값으로 반환합니다. 이 값은 프로세스가 시작된 이후 경과한 시간을 기준으로 하며, 두 지점 사이의 시간 차이를 계산하는 용도로 사용됩니다.

기본 사용 예제

# time 모듈 임포트
import time

# 현재 perf_counter 값 출력
print(time.perf_counter())

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

263.3530349

반환되는 숫자 자체는 큰 의미가 없으며, 중요한 것은 두 호출 사이의 차이입니다. 이를 활용하면 프로그램이나 특정 코드 블록의 실행 시간을 정밀하게 측정할 수 있습니다.

프로그램 실행 시간 측정하기

다음은 time.perf_counter()를 사용해 소수 판별 프로그램의 실행 시간을 측정하는 예제입니다.

예제 코드

# time 모듈 임포트
import time

# 소수 판별 함수
def is_prime(number):
    for i in range(2, number):
        if number % i == 0:
            return False
    return True

if __name__ == '__main__':
    number = 17377
    start_time = time.perf_counter()
    is_prime(number)
    end_time = time.perf_counter()

# 종료 시각에서 시작 시각을 빼서 실행 시간 계산
print(end_time - start_time)

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

0.004171799999994619

즉, 17377이라는 숫자에 대한 소수 판별 작업이 약 0.0042초(약 4.17밀리초) 만에 완료된 것입니다.

time.perf_counter()의 장점

  • 높은 해상도: 나노초 단위의 정밀한 시간 측정이 가능합니다.
  • 단조 증가(Monotonic): 시스템 시간 변경(예: NTP 동기화)의 영향을 받지 않아 항상 일관된 측정이 가능합니다.
  • 성능 측정에 최적화: 코드 벤치마킹 및 실행 시간 비교에 적합합니다.

마무리

time.perf_counter()는 파이썬에서 코드 실행 시간을 정밀하게 측정할 때 가장 권장되는 방법 중 하나입니다. 간단한 벤치마킹부터 성능 최적화 작업까지 다양하게 활용해 보시기 바랍니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요!