如何在python中找到任何函数或任何例程的总运行时间

2024-04-23 06:06:30 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我正在使用下面的代码来查找我手动使用开始时间和结束时间的任何例程/函数的运行时间

但是,我想要一个函数自动返回整个函数所用的时间,就像我们运行查询时,它用来表示我想运行任何函数的秒数和毫秒数,并且每个函数都应该返回这个经过的时间。在

这是我的代码,我绝对不满意,我需要一个高端的专业代码行的帮助。谢谢。在

def ElaspedTime(stime,etime):
    from datetime import timedelta
    timediff = timedelta(seconds=etime - stime)
    return timediff

def STime():
    return time.monotonic()

def ETime():
    return time.monotonic()

#start_time = time.monotonic()

##call functions here

#end_time = time.monotonic()

#print( ElaspedTime(start_time,end_time))

Tags: 函数代码returntimedef时间手动start
2条回答

您可以创建如下包装函数:

def runWithTime(f,*args):
    from datetime import timedelta
    import time
    stime = time.time()
    r = f(*args)
    etime = time.time()
    timediff = timedelta(etime - stime)
    print timediff
    return r

def a(x,y):
    return x+y

r = runWithTime(a,1,2)
print r

写一个装饰器如下(替换日志.调试打印…:

from functools import wraps
def with_stopwatch(f):
    @wraps(f)
    def wrapped(*args, **kw):
        tstart = time()
        result = f(*args, **kw)
        tend = time()
        log.debug('>>> func:%r took: %2.4f sec' % (f.__name__, tend - tstart))
        return result
    return wrapped

@with_stopwatch
def function()
    ...

相关问题 更多 >