「이 코드와 저 코드 중 뭐가 빠를까」를 정확히 측정하려면 한 번 실행 시간이 아닌 「여러 번 평균」이 필요합니다.
timeit 모듈이 이 일을 정확하게 해 줍니다.
CLI로 한 줄.
python -m timeit -s "data = list(range(1000))" "sum(data)".
-s는 setup 코드(매 측정 전 한 번), 본문은 측정 대상.
자동으로 적절한 횟수만큼 반복하고 평균 시간 출력.
코드에서 사용.
import timeit.
t = timeit.timeit("sum(data)", setup="data = list(range(1000))", number=10000).
10000번 실행 총 시간.
timeit.repeat(...)는 여러 번 반복해 최소·평균 등 분포 확인.
Jupyter Notebook의 %timeit.
셀에서 %timeit sum(range(1000)) — 자동으로 적절한 반복으로 측정.
%%timeit (셀 매직)으로 셀 전체 측정.
데이터 분석 환경에서 가장 편한 방식.
주의 — 미세 최적화의 함정.
「리스트 컴프리헨션이 for문보다 1.2배 빠르다」 같은 차이는 대부분 무의미.
실제 병목은 IO·DB·네트워크에 있습니다.
timeit은 「알고리즘 차이」나 「수만 번 호출되는 핫스팟」에 의미 있음.
한 줄 요약
timeit은 짧은 코드를 여러 번 실행해 평균 시간 측정합니다.
CLI(-s setup, 본문)·코드(timeit.timeit)·Jupyter %timeit.
미세 차이보다 큰 병목·핫스팟에 집중.
더 알아볼 것
- %timeit vs %%timeit 차이
- perf_counter — 더 정밀한 측정
- 코드 최적화 우선순위