개발부터 자유까지

[Python] time 함수 비교 본문

Python

[Python] time 함수 비교

ssehuun 2026. 2. 10. 10:55
아래는 time.time() / time.perf_counter() / time.process_time() / time.monotonic() 네 가지 타이머 함수의 정확한 차이점 정리입니다.

 

전체 비교표

함수 목적 증가 방식 시스템 시간 변경 영향 일시정지
(절전) 영향
CPU
시간 기준
정밀도 사용 용도
time.time()
현재 시각 확인 (Unix timestamp) 실제 시간 기준 ✔ 영향 받음 (NTP 동기화 등) ✔ 영향 받음 현재 시각 출력, 로깅
time.perf_counter()
가장 정확한 성능 측정용 모노토닉 타이머 ✖ 영향 없음 ✖ 영향 없음 매우 높음 코드 실행 시간 측정(성능 테스트)
time.process_time()
CPU 사용 시간 측정 CPU가 작업한 시간만 증가 ✖ 영향 없음 ✖ 영향 없음 ✔ CPU time only 높음 알고리즘 CPU 사용량 측정
time.monotonic()
뒤로 되돌아가지 않는 시간 측정 모노토닉 타이머 ✖ 영향 없음 ✖ 영향 없음 높음 경과 시간 측정(시계 튐 방지)

 

1. time.time()

✔ 특징

  • 현재 시간을 초 단위 float로 반환 (UNIX timestamp)
  • 가장 일반적인 시간 함수
  • 시스템 시간 변경에 영향을 받음
    → NTP 동기화 / 관리자 설정 변경하면 값이 앞뒤로 튈 수 있음
  • 정확한 소요 시간 측정용으로는 부적합

✔ 예시

import time
print(time.time()) # 1739193812.12345

 

2. time.perf_counter()

✔ 특징

  • Python에서 가장 정밀도가 높은 고해상도 타이머
  • 부팅 후 증가하는 시간(정확한 소요 시간을 측정)
  • 시스템 시간 변경, 절전, 일시정지에 영향 없음
  • 성능 측정(benchmark)에 가장 적합한 함수

✔ 활용 예

start = time.perf_counter()
# 수행 코드
end = time.perf_counter()

print(end - start)
 
 
 

3. time.process_time()

✔ 특징

  • CPU가 실제로 사용된 시간만 증가
  • sleep(), I/O 대기 등 CPU 사용이 없는 시간은 카운트되지 않음
  • 절전, 시스템 시간 변경, real-time 흐름과 무관
  • 알고리즘의 CPU 소모량 측정에 적합

✔ 예시

import time

start = time.process_time()
# CPU 많이 쓰는 작업
end = time.process_time()

print(end - start)  # CPU가 실제로 사용된 시간만 출력됨
 
 

 

4. time.monotonic()

✔ 특징

  • 절대로 뒤로 가지 않는(monotonic) 타이머
  • 시스템 시간 변경 영향 없음
  • perf_counter보다 정밀도가 낮을 수 있지만 목적은 동일:
    경과 시간 측정용
  • perf_counter()와 비슷하지만 보장하는 정밀도는 플랫폼마다 다름
    → 일반적으로 perf_counter()가 좀 더 고정밀

✔ 예시

import time

start = time.monotonic()
# some work
end = time.monotonic()

print(end - start)
 
 
🧠 언제 어떤 걸 써야 하나?

✔ 현재 시각을 알고 싶다

time.time()

✔ 코드 실행 시간을 정확하게 측정하고 싶다 (benchmark)

time.perf_counter() (가장 추천)

✔ 알고리즘이 CPU를 얼마나 썼는지 알고 싶다

time.process_time()

✔ 시스템 시간 변경에도 영향을 받지 않는 경과 시간 측정

time.monotonic()