【发布时间】:2020-08-05 13:23:30
【问题描述】:
每次我想记录运行某些代码需要多长时间时,我都会按以下方式包装代码
logger.info('Running <MYCODE>' )
start_time = time.time()
<MYCODE>
logger.info("--- %s seconds ---" % (time.time() - start_time))
这使得代码非常非常不可读,非常非常快。
我知道 %timeit 的事情,但我认为它在这里不适用,因为我想记录并且因为我不想运行它 N 次以获得差异或类似的东西。
我在想我应该定义一个函数
def timing ( <MYCODE> ):
logger.info('Running <MYCODE>' )
start_time = time.time()
<MYCODE>
logger.info("--- %s seconds ---" % (time.time() - start_time))
但我不确定这是个好主意。首先,因为看起来很多人已经遇到并解决了比我的 5 分钟解决方案更好的问题,其次因为我必须处理这个函数的返回......它返回什么?以及如何传递我想要运行的整段代码?我很困惑,看起来有人已经为此编写了一些装饰器......
【问题讨论】: