Q & A

함수의 실행 시간은 어떻게 측정하나요?

함수의 실행 시간을 측정하려면 time 모듈의 time 함수를 활용합니다. time 함수는 현재 시간을 실수로 반환하는데 함수가 끝난 시간에서 시작된 시간을 빼면 실행 시간을 구할 수 있습니다. 다음은 함수의 실행 시간을 측정하는 데코레이터입니다.

from time import time
from functools import reduce
 
def profile(func):
    def wrapper(n):
        begin = time()    # 함수가 시작된 시간
        r = func(n)
        end = time()      # 함수가 끝난 시간
        print('실행 시간: {0:.3f}초'.format(end - begin))    # 끝난 시간에서 시작된 시간을 빼면 
        return r                                             # 실행 시간
    return wrapper
 
@profile
def factorial(n):
    return reduce(lambda x, y: x * y, range(1, n + 1))
 
factorial(10000)    # 숫자가 매우 커서 반환값 출력은 생략

실행 결과

실행 시간: 0.047초