python测试一段代码运行时间的优雅方法
文章目录
前言:
这个PER的全面整理,简直害死人,怎么这么多事儿?
需要补的知识点太多了啊~
为了要测试PER的时间消耗,都在哪儿,我要记录程序执行的过程中,关键语句的运行时间。
最简陋的方法其实很简单,三句话:
import time
...
st = time.time()
results = function(args)
cost = time.time()-st
但这个代码不适合大面积广泛使用,对于少数几个语句操作还好,凑活着看也行。
因此我刚开始想的是,能不能写个函数:
def cost_time(function, args):
st = time.time()
results = funtcion(args)
cost = time.time()-st
return results, cost
但是这个直接报错好吧,根本不能这么把函数当参数传入。
基于修饰器的时间计算:
import time
from functools import wraps
class Timeit:
def __init__(self, fn = None):
wraps(fn)(self)
def __call__(self, *args, **kwargs):
start = time.time()
ret = self.__wrapped__(*args, **kwargs)
cost = time.time() - start
return ret, cost
if __name__ == "__main__":
@Timeit
def add(x, y):
return x+y
r, cost = add(2, 3)
print("r:", r)
print("cost:", cost)
总结:
其实这个也没法用到per中,还不如直接用第一种朴实无华的操作,枯了
标签:__,python,self,args,优雅,代码运行,cost,time,def
来源: https://blog.csdn.net/hehedadaq/article/details/111741854