[Python] 파이썬 작업 실행시간 측정하기

1. 파이썬 작업 실행 시간 측정하기

import time

# 1556092098.1627643 과 같이 1970년 1월 1일부터 경과된 시간을 초 단위로 출력합니다.
start_time = time.time() 

##################### [작업 수행] #####################
time.sleep(3)
##################### [작업 수행] #####################

# 작업 수행된 시간 : 3.003057 초
print('작업 수행된 시간 : %f 초' % (time.time() - start_time))

2. 데코레이터를 사용하여 함수 실행 시간 측정하기

2.1 리턴값이 없는 데코레이터

import time
def time_decorator(name):
    def callf(func):
        def inner(*args, **kwargs):
            print("%s 시작" % name)
            start_time = time.time()
            func(*args, **kwargs)
            print("%s 종료 (%.2f 초) " % (name, time.time() - start_time))
        return inner
    return callf

2.2 리턴값이 있는 데코레이터

import time
def time_decorator_for_return(name):
    def callf(func):
        def inner(*args, **kwargs):
            print("%s 시작" % name)
            start_time = time.time()
            returnValue = func(*args, **kwargs)
            print("%s 종료 (%.2f 초) " % (name, time.time() - start_time))
            return returnValue
        return inner
    return callf

2.3 사용법

@time_decorator_for_return('리턴값이 있는 함수')
def func_for_return(a, b):
    time.sleep(1)
    return a+b

@time_decorator('리턴값이 없는 함수')
def func():
    c = func_for_return(29, 33)
    time.sleep(1.5)
    print('리턴값 : %d' % c)

func()
리턴값이 없는 함수 시작
리턴값이 있는 함수 시작
리턴값이 있는 함수 종료 (1.00 초) 
리턴값 : 62
리턴값이 없는 함수 종료 (2.50 초)

댓글

Designed by JB FACTORY