프로그래밍 연습하기

파이썬 데코레이터를 이용한 실행 시간 측정 본문

Python

파이썬 데코레이터를 이용한 실행 시간 측정

john.k 2020. 9. 17. 14:06
반응형

함수의 실행에 어느정도 시간이 걸리는지 확인해야 될 때가 있습니다.

하지만 여러 군데에서 일일이 시작시간과 종료시간을 구하고 그 차를 출력하는 것은 번거롭습니다.

 

파이썬 데코레이터를 이용하여 시간을 측정하는 예제를 작성해봤습니다.

 

# decorator.py

from datetime import datetime


def time_measure_decorator(func):

    def wrapper(*args, **kwargs):
        start = datetime.now()
        ret = func(*args, **kwargs)
        end = datetime.now()
        print("Time lapsed : ", (end-start).total_seconds(), "seconds")
        return ret
        
    return wrapper

위와 같이 데코레이터를 작성할 수 있습니다.

# example.py

from decorator import time_measure_decorator


@time_measure_decorator
def example(num):
    for _ in range(num):
        pass
    return "success"


a = example(10**9)
print(a)

 

실행 시 다음과 같은 결과를 확인할 수 있습니다.

Time lapsed :  19.017032 seconds
success

 

반응형
Comments