2020-04-24 20:14:26

파이썬으로 코딩을 하다보면, 코드를 실행하는데 소요되는 시간을 측정할 일이 종종 필요합니다. 코드 실행 시간을 측정해야하는 이유는 사람에게 있어 시간은 매우 중요한 요소이기 때문입니다. 그래서 "시간이 금"이라는 말도 있죠. 보통 어떤 알고리즘의 성능을 평가할 때는 정확도와 속도 두 가지 요소를 중점적으로 고려합니다. 그런데 이 두 가지는 이율배반(trade-off)의 관계라 보통 하나를 높이면 하나가 떨어집니다. 그래서 대개는 사람이 사용하는데 불편함을 느끼지 않을 정도의 빠름과 정확도를 추구합니다. 매우 정확한데 너무 느리거나, 매우 빠른데 부정확하다면 실용가치가 떨어지는 것이죠.

 

Photo by  Lukas Blazek  on  Unsplash

 

파이썬 같은 인터프리트 언어는 C언어와 같은 컴파일 언어에 비해 느리지만, 그래도 시간을 측정하는 것은 필요한 일입니다. 컴파일 언어와 인터프리트 언어의 차이에 대해 알고 싶은 분은 링크를 참고해주세요.^^

 

파이썬에서 코드 실행 시간을 측정할 수 있는 방법은 여러 가지가 있겠지만, 저는 timeit이라는 파이썬 내장 모듈을 이용해서 시간을 측정해보도록 하겠습니다. 

 

간단한 예로 덧셈을 1억번 수행하는데 몇 초가 걸리는지 한번 체크해볼까요? 코드는 다음과 같이 작성했습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
import timeit
 
start_time = timeit.default_timer() # 시작 시간 체크
 
sum = 0
 
for i in range(100000000):
    sum += i
    
terminate_time = timeit.default_timer() # 종료 시간 체크  
 
print("%f초 걸렸습니다." % (terminate_time - start_time)) 
cs

 

0부터 시작해서 1, 2, 3,...., 99,999,999까지 모두 더하는 코드입니다. 위 코드를 실행했더니, 약 11초가 걸렸다고 나오네요. 물론 사용하는 컴퓨터 사양에 따라 차이가 있을 것입니다. 

 

 

이를 사람의 능력과 한 번 비교해보겠습니다. 사람이 직접 1억번의 덧셈을 하려면 한번의 덧셈에 1초씩 걸린다고 쳐도

 

1억초 = 약 1666667분 = 약 27778시간 = 약 1157일 = 약 3년

 

이 걸립니다. 이래서 컴퓨터가 필요한 것이죠. ㅋㅋㅋ

 

만약 누군가 여러분에게 1억번의 덧셈을 시킨다면(그런 사람도 없겠고, 시켜도 안하겠지만, 꼭 해야만 한다면), 10일간 막노동을 해서라도 100만원을 번 후, 컴퓨터를 꼭 한 대 구입하십시오. 그것이 정신건강과 육체건강에 좋습니다.