파이썬에서 프로그램 실행 중 경과 시간을 측정하려면 time 모듈의 함수를 활용할 수 있습니다. 과거에는 time.clock() 또는 time.time() 함수가 주로 사용되었으며, 파이썬 공식 문서에서도 벤치마킹(성능 측정) 목적으로 이러한 함수의 사용을 권장했습니다.
참고: time.clock()은 파이썬 3.3부터 지원이 중단(deprecated)되었고, 파이썬 3.8에서 완전히 제거되었습니다. 따라서 최신 파이썬 환경에서는 더 높은 정밀도를 제공하는 time.perf_counter()(실제 경과 시간 기준) 또는 time.process_time()(CPU 사용 시간 기준)를 사용하는 것이 좋습니다.
예제: time 모듈로 경과 시간 측정하기
import time
t0 = time.perf_counter()
print("Hello")
t1 = time.perf_counter() - t0
print("Time elapsed:", t1) # 경과 시간(초 단위 부동소수점)출력 결과
위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.
Time elapsed: 1.2999999999999123e-05
timeit 모듈로 정확한 성능 분석하기
특정 코드 조각(snippet)의 실행 시간을 통계적으로 분석하고 싶다면 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()는 리스트 형태로 여러 번의 측정 결과를 반환합니다. 각 값은 지정된 횟수(여기서는 number=100000)만큼 반복 실행하는 데 걸린 총 시간(초)을 의미합니다. 성능을 판단할 때는 일반적으로 여러 측정값 중 가장 작은 값을 기준으로 삼는 것이 좋습니다.