time 모듈이란?time은 Python 표준 라이브러리 중 하나로, 시간과 관련된 다양한 기능을 제공합니다. 그 중에서 코드 실행 시간을 측정할 때 가장 많이 쓰이는 함수들을 정리합니다.
time.time() — 현재 시각1970년 1월 1일 00:00:00(UTC)을 기준으로 현재까지 흐른 시간을 초 단위로 반환합니다.
import time
print(time.time())
# → 1711234567.123456
숫자 자체보다는 두 번 찍어서 차이를 구하는 방식으로 처리 시간을 측정할 때 씁니다.
t0 = time.time()
# 처리할 코드
elapsed = time.time() - t0
print(f"{elapsed:.2f}s")
time.perf_counter() — 정밀 시간 측정성능 측정 전용 함수로, time.time()보다 훨씬 정밀한 시간을 반환합니다.
import time
t0 = time.perf_counter()
# 처리할 코드
elapsed = time.perf_counter() - t0
print(f"{elapsed:.2f}s")
반환값 자체는 의미가 없고, 반드시 두 번 찍어서 차이를 구하는 방식으로 사용합니다.
time.time() # 1711234567.123 ← 정밀도 낮음
time.perf_counter() # 48273.123456789 ← 나노초 수준
time.time() vs time.perf_counter()time.time() | time.perf_counter() | |
|---|---|---|
| 기준 | 1970년 1월 1일 | 임의의 시작점 |
| 정밀도 | 낮음 | 높음 (나노초 수준) |
| 용도 | 현재 시각 확인 | 코드 실행 시간 측정 |
| 시스템 시계 영향 | 받음 | 받지 않음 |
time.time()은 시스템 시계를 사용하기 때문에 NTP 동기화 등 외부 요인으로 값이 튀는 경우가 있습니다. 짧은 시간을 정밀하게 측정할 때는 perf_counter()가 적합합니다.
time.sleep() — 실행 일시 정지지정한 시간(초) 동안 실행을 멈춥니다.
import time
print("시작")
time.sleep(2) # 2초 대기
print("완료") # 2초 후 출력
테스트나 API 호출 사이에 딜레이를 줄 때 자주 씁니다.
{elapsed:.2f} — 소수점 포맷f-string에서 숫자 포맷을 지정하는 방법입니다.
elapsed = 1.23456789
f"{elapsed}" # '1.23456789' — 포맷 없음
f"{elapsed:.2f}" # '1.23' — 소수점 둘째 자리까지
f"{elapsed:.4f}" # '1.2346' — 소수점 넷째 자리까지
처리 시간을 출력할 때 소수점 둘째 자리까지만 보여주면 충분하기 때문에 .2f를 씁니다.
| 함수 | 한 줄 설명 |
|---|---|
time.time() | 현재 시각 (1970년 기준 초) |
time.perf_counter() | 정밀 시간 측정 (나노초 수준) |
time.sleep(n) | n초 동안 실행 일시 정지 |
한 줄 요약: 코드 실행 시간을 정밀하게 측정할 때는
time.time()대신time.perf_counter()를 사용합니다. 시작 시점과 끝 시점의 차이로 처리 시간을 구하는 것이 기본 패턴입니다.