파이썬 코드 실행 시간 측정
파이썬 코드를 작성하다 보면 특정 코드가 얼마나 걸리는지 확인하고 싶을 때가 있다. 이때 사용할 수 있는 함수가 time 라이브러리의 perf_counter()와 process_time()이다.
perf_counter, process_time 차이점
perf_counter()는 프로그램의 전체 실행 시간을 측정한다. 여기에는 프로그램이 실행되지 않고 대기하는 시간도 포함된다. 반면, process_time()은 프로그램이 실제 프로세싱(처리)된 시간만 측정한다.
아래 예제를 보자.
import time
def perf_proc():
time.sleep(1)
for value in range(1, 5):
pass
start = time.perf_counter()
perf_proc()
end = time.perf_counter() - start
print(end)
start = time.process_time()
perf_proc()
end = time.process_time() - start
print(end)
코드를 사용할 때는 주의하시기 바랍니다. 자세히 알아보기
이 예제에서 perf_counter()는 1.0189821000000002, process_time()은 0.018982099999999997을 출력한다. perf_counter()는 sleep() 함수에 의해 1초 동안 대기한 시간이 포함되어 1초가 출력된다. 반면, process_time()은 sleep() 함수에 의해 대기한 시간이 포함되지 않아 0.02초가 출력된다.
사용법
위의 차이점을 이해하면 perf_counter()와 process_time()을 적절히 사용할 수 있다.
프로그램의 전체 실행 시간을 측정하고 싶다면 perf_counter()를 사용한다.
프로그램이 실제 프로세싱(처리)된 시간을 측정하고 싶다면 process_time()을 사용한다.
- perf_counter()
perf_counter의 경우 프로그램 전체의 실행시간으로 계산한다.
- process_time()
프로그램이 실제 프로세싱(처리)된 시간으로 계산한다.
예를 들어, sleep() 함수를 사용하여 프로그램의 대기 시간을 측정하고 싶다면 perf_counter()를 사용한다. 반면, CPU 사용률을 측정하고 싶다면 process_time()을 사용한다.
'Python' 카테고리의 다른 글
Python - 도메인, 서브도메인, URL 구분 방법 tldextract (0) | 2024.03.02 |
---|---|
Python - 지역 변수와 전역 변수 그리고 global (0) | 2024.03.02 |
SQLAlchemy로 MySQL 데이터베이스 연결 및 쿼리하기 (0) | 2024.03.02 |
Pylint - docstring "Missing function or method docstring" 메시지 (0) | 2024.03.02 |
Python - Zipfile 한글 파일이름 깨짐 해결하기 (0) | 2024.03.01 |