[Python] 코드 실행 시간 측정
October 17, 2023
어떤 기능을 구현했을 때, 퍼포먼스가 좋지 않으면 문제가 될 때가 있습니다. 또는, 기존 코드가 느려서 개선했는데 얼마나 개선이 되었는지 시간을 측정해야할 때가 있습니다.
이 글에서는 코드의 실행 시간이 얼마인지 측정하는 방법에 대해서 소개합니다.
1. perf_counter()으로 시간 측정
time.perf_counter()
는 CPU 시간으로 수행 시간을 측정하여, 조금 더 정확하게 시간을 측정할 수 있습니다.
perf_counter()
는 시간을 리턴하며, 코드 실행 전/후에 시간을 기록하고 차를 계산하여 실행 시간을 구할 수 있음
아래와 같이 어떤 코드의 실행 시간을 측정할 수 있습니다.
import time
def test_function():
print("함수 수행 중..")
time.sleep(1)
# 시작
start = time.perf_counter()
# 코드 실행
for i in range(3):
result = test_function()
# 종료
end = time.perf_counter()
diff = end - start
print(f"실행 시간: {diff:.2f} 초")
Output:
함수 수행 중..
함수 수행 중..
함수 수행 중..
실행 시간: 3.00 초
2. time()으로 시간 측정
time.time()
UTC time을 초단위로 리턴합니다. UTC는 1970년 1월 1일을 0초로 현재까지 흐른 시간을 계산하는 방식입니다.
위의 예제와 동일하게, time()
은 호출 시점의 시간을 리턴하며, 코드 실행 전/후에 시간을 기록하고 차를 계산하면 실행 시간을 구할 수 있습니다.
import time
def test_function():
print("함수 수행 중..")
time.sleep(1)
# 시작
start = time.time()
# 코드 실행
for i in range(3):
result = test_function()
# 종료
end = time.time()
diff = end - start
print(f"실행 시간: {diff:.2f} 초")
Output:
함수 수행 중..
함수 수행 중..
함수 수행 중..
실행 시간: 3.00 초
3. timeit으로 시간 측정
timeit(function, number)
은 인자로 전달한 function을 number 횟수만큼 호출하고 전체 실행 시간을 초 단위로 리턴합니다.
위의 예제들과 다르게, timeit()
함수에 테스트할 함수와 반복할 횟수를 인자로 전달하고 실행 시간을 전달받으면 됩니다.
import time
import timeit
def test_function():
print("함수 수행 중..")
time.sleep(1)
execution_time = timeit.timeit(test_function, number=3)
print(f"실행 시간: {execution_time:.2f} 초")
Output:
함수 수행 중..
함수 수행 중..
함수 수행 중..
실행 시간: 3.00 초