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 초)