1、一个方法如何判断该方法执行的时间,请使用装饰器
首先,我默认大家已经知道装饰器是什么了,不知道的,请自行学习,后期也会出相关文章,然后如何通过装饰器来精准管理每个方法执行时间,从而优化代码呢?如下:
(1)写一个clock装饰器
def clock(func_role):
def decorate(func):
def clocked(*_args):
start_time = time.time()
_result = func(*_args)
elapsed = time.time() - start_time
name = func.__name__
module_name = func.__module__
logger = get_logger(module_name)
args = ', '.join(repr(arg) for arg in _args)
logger.info("{}-{} 共用时 {} 秒,请求参数为:{},".format(
func_role, name, elapsed, args))
return _result
return clocked
return decorate
(2)将clock挂在方法上面,如下
@clock("测试运行时间的函数")
def time_test():
for i in range(1000000):
pass
>>>
>>> from utils.utils import clock
>>> @clock("测试运行时间的函数")
... def time_test():
... for i in range(1000000):
... pass
...
>>>
>>> time_test()
INFO:__main__:测试运行时间的函数-time_test 共用时 0.017984628677368164 秒,请求参数为:,
>>>