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

파이썬 코드 실행 시간 측정 방법: time과 timeit 모듈 완벽 정리

프로그램의 실행 시간을 측정하는 것은 성능 최적화와 벤치마킹에 필수적인 작업입니다. 파이썬에서는 time 모듈과 timeit 모듈을 활용해 코드 실행 속도를 정확하게 측정할 수 있습니다.

time 모듈로 실행 시간 측정하기

가장 간단한 방법은 time 모듈의 함수를 사용하는 것입니다. 참고로 과거에는 time.clock()이 벤치마킹 용도로 권장되었지만, Python 3.3부터는 더 정밀한 time.perf_counter() 사용이 권장되며, time.clock()은 Python 3.8에서 폐기(deprecated)된 후 3.10에서 완전히 제거되었습니다.

예제

import time

t0 = time.perf_counter()
print("Hello")
t1 = time.perf_counter()
print("Time elapsed:", t1 - t0)  # 경과 시간(초 단위, 부동소수점)

출력 결과

Hello
Time elapsed: 0.0009403145040156798

time.perf_counter()는 시스템 전체에서 가장 높은 해상도를 제공하는 클럭으로, 짧은 코드 구간의 성능을 측정하는 데 가장 적합합니다.

timeit 모듈로 통계적 분석하기

더 신뢰할 수 있는 측정을 원한다면 timeit 모듈을 사용하는 것이 좋습니다. 이 모듈은 코드 조각을 여러 번 반복 실행한 후 가장 짧게 걸린 시간을 알려주므로, 운영체제 스케줄링 등 외부 요인의 영향을 최소화할 수 있습니다.

예제

def f(x):
    return x * x

import timeit
timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)

출력 결과

[2.0640320777893066, 2.0876040458679199, 2.0520210266113281]

timeit.repeat()는 기본적으로 3회 반복(repeat=3)한 결과를 리스트로 반환하며, 각 값은 지정된 횟수(number=100000)만큼 실행하는 데 걸린 총 시간입니다. 일반적으로 세 값 중 최솟값이 해당 코드의 실제 성능을 가장 잘 나타내므로, 벤치마킹 시에는 최솟값을 기준으로 판단하는 것이 좋습니다.