1. 개요
- 파이썬 알고리즘이나 프로그램의 수행시간을 측정, 비교하기 위해 쓰이는 파이썬 모듈을 소개해보겠습니다.
- 다만, 프로그램 구동환경에 따라 CPU, RAM, BUS 성능이 제각각이므로 모든 구동환경에 대한 '절대적' 측정 시간이 아닌, 특정 구동환경에 대한 '상대적' 수행시간임을 참고하시면 되겠습니다.
- 파이썬 프로그램 시간측정에 쓰이는 'time'이라는 모듈 중 time.perf_counter()와 time.process_time() 이 두 가지 메서드에 대해 알아보겠습니다.
2. time.perf_counter()
- time.perf_counter() 메서드는 파이썬 프로그램 실행 시작시간부터, 프로그램 종료까지의 시간을 측정하는데, 모든 대기 시간, 입/출력대기, 사용자와의 상호작용 대기시간 등이 포함됩니다.
- 'time' 모듈을 import하는 선행작업이 필요합니다.
- 스탑워치로 시간을 재듯, 시작 시점과 종료시점 두 가지에 대한 기록이 필요하고, 종료시간과 시작시간의 차이를 계산하여 프로그램의 총 구동시간을 측정합니다.
import time
# 성능 카운터 시작
start = time.perf_counter()
# 시간을 측정하고 싶은 작업 수행
# 예: 1초 대기
time.sleep(1)
# 성능 카운터 종료 및 출력
end = time.perf_counter()
print(f"Operation took {end - start} seconds")
3. time.process_time()
- time.process_time() 메서드는 'CPU시간'을 측정하는데, CPU시간이란 입출력작업이나 대기 시간을 제외한 단순 CPU 이용시간만을 의미합니다.
- 마찬가지로 'time' 모듈을 import하는 선행작업이 필요합니다.
- 시작 시점과 종료시점 두 가지에 대한 기록이 필요하고, 종료시간과 시작시간의 차이를 계산하여 프로그램의 총 구동시간을 측정합니다.
import time
# CPU 시간 측정 시작
start = time.process_time()
# CPU 시간을 소모하는 작업, 예를 들어 계산 작업 수행
num = 0
for _ in range(1000000):
num += 0
# CPU 시간 측정 종료
end = time.process_time()
# 소요된 CPU 시간 출력
print(f"Process took {end - start} seconds")
'Python' 카테고리의 다른 글
[Python] 리스트 내 특정 요소 개수 반환 - count() 메서드 (0) | 2024.03.29 |
---|---|
[Python] 파이썬 세트(Set) 자료형 - 집합연산, 메서드 (0) | 2024.03.26 |
[Python] 특정 값이 처음으로 나타나는 인덱스 반환 - index() (0) | 2024.03.09 |
[Python] 원하는 기준으로 이차원 배열 정렬 - sort(), sorted() 및 람다함수 (2) | 2024.03.01 |
[Python] 문자열 자료형 판별 메서드 - isdigit(), isalpha() (0) | 2024.03.01 |
1. 개요
- 파이썬 알고리즘이나 프로그램의 수행시간을 측정, 비교하기 위해 쓰이는 파이썬 모듈을 소개해보겠습니다.
- 다만, 프로그램 구동환경에 따라 CPU, RAM, BUS 성능이 제각각이므로 모든 구동환경에 대한 '절대적' 측정 시간이 아닌, 특정 구동환경에 대한 '상대적' 수행시간임을 참고하시면 되겠습니다.
- 파이썬 프로그램 시간측정에 쓰이는 'time'이라는 모듈 중 time.perf_counter()와 time.process_time() 이 두 가지 메서드에 대해 알아보겠습니다.
2. time.perf_counter()
- time.perf_counter() 메서드는 파이썬 프로그램 실행 시작시간부터, 프로그램 종료까지의 시간을 측정하는데, 모든 대기 시간, 입/출력대기, 사용자와의 상호작용 대기시간 등이 포함됩니다.
- 'time' 모듈을 import하는 선행작업이 필요합니다.
- 스탑워치로 시간을 재듯, 시작 시점과 종료시점 두 가지에 대한 기록이 필요하고, 종료시간과 시작시간의 차이를 계산하여 프로그램의 총 구동시간을 측정합니다.
import time
# 성능 카운터 시작
start = time.perf_counter()
# 시간을 측정하고 싶은 작업 수행
# 예: 1초 대기
time.sleep(1)
# 성능 카운터 종료 및 출력
end = time.perf_counter()
print(f"Operation took {end - start} seconds")
3. time.process_time()
- time.process_time() 메서드는 'CPU시간'을 측정하는데, CPU시간이란 입출력작업이나 대기 시간을 제외한 단순 CPU 이용시간만을 의미합니다.
- 마찬가지로 'time' 모듈을 import하는 선행작업이 필요합니다.
- 시작 시점과 종료시점 두 가지에 대한 기록이 필요하고, 종료시간과 시작시간의 차이를 계산하여 프로그램의 총 구동시간을 측정합니다.
import time
# CPU 시간 측정 시작
start = time.process_time()
# CPU 시간을 소모하는 작업, 예를 들어 계산 작업 수행
num = 0
for _ in range(1000000):
num += 0
# CPU 시간 측정 종료
end = time.process_time()
# 소요된 CPU 시간 출력
print(f"Process took {end - start} seconds")
'Python' 카테고리의 다른 글
[Python] 리스트 내 특정 요소 개수 반환 - count() 메서드 (0) | 2024.03.29 |
---|---|
[Python] 파이썬 세트(Set) 자료형 - 집합연산, 메서드 (0) | 2024.03.26 |
[Python] 특정 값이 처음으로 나타나는 인덱스 반환 - index() (0) | 2024.03.09 |
[Python] 원하는 기준으로 이차원 배열 정렬 - sort(), sorted() 및 람다함수 (2) | 2024.03.01 |
[Python] 문자열 자료형 판별 메서드 - isdigit(), isalpha() (0) | 2024.03.01 |