파이썬으로 작업을 하다가 특정 부분에서 실행 시간이 오래 걸리길래 확인해 봤더니 아래와 같은 코드가 있었다.
pow(x, 2)
처음에는 단지 파이썬의 내장 함수이기 때문에 시간이 적게 걸리지 않을까 생각했지만, 그 부분의 실행 시간을 줄이는 방법이 딱히 떠오르지 않아서 설마... 하는 생각으로 그 부분을 다음과 같이 수정했더니, 이전보다 실행 시간이 훨씬 줄어들었다.
x * x
그래서 실행 시간이 대충 얼마나 차이가 나는지 다음과 같이 직접 테스트해 보았다.
import time
a = 3.14159
print('pow(a, 2) 실험')
start = time.time()
for i in range(3000000):
b = pow(a, 2)
end = time.time()
print('시간: ', end - start)
print('a * a 실험')
start = time.time()
for i in range(3000000):
b = a * a
end = time.time()
print('시간: ', end - start)
실행 결과는 다음과 같았다.
1차 실험
pow(a, 2) 실험
시간: 0.6982791423797607
a * a 실험
시간: 0.19038057327270508
2차 실험
pow(a, 2) 실험
시간: 0.6514058113098145
a * a 실험
시간: 0.19645094871520996
3차 실험
pow(a, 2) 실험
시간: 0.6263716220855713
a * a 실험
시간: 0.19273591041564941
즉, a * a
로 하는 것이 pow(a, 2)
로 하는 것보다 약 3.0 ~ 3.5배 빠르다는 것을 알 수 있었다.