Python时间测量函数

标签 python time callback

我想创建一个python函数来测试每个函数花费的时间并打印它的名字和它的时间,我如何打印函数名,如果有其他方法请告诉我

def measureTime(a):
    start = time.clock() 
    a()
    elapsed = time.clock()
    elapsed = elapsed - start
    print "Time spent in (function name) is: ", elapsed

最佳答案

首先,我强烈建议使用 profiler或至少使用 timeit .

但是,如果您想编写自己的计时方法来严格学习,这里是开始使用装饰器的地方。

Python 2:

def timing(f):
    def wrap(*args):
        time1 = time.time()
        ret = f(*args)
        time2 = time.time()
        print '%s function took %0.3f ms' % (f.func_name, (time2-time1)*1000.0)
        return ret
    return wrap

而且用法很简单,使用@timing装饰器即可:

@timing
def do_work():
  #code

Python 3:

def timing(f):
    def wrap(*args, **kwargs):
        time1 = time.time()
        ret = f(*args, **kwargs)
        time2 = time.time()
        print('{:s} function took {:.3f} ms'.format(f.__name__, (time2-time1)*1000.0))

        return ret
    return wrap

注意,我调用 f.func_name 来获取函数名作为字符串(在 Python 2 中),或在 Python 3 中以 f.__name__ 形式获取。

关于Python时间测量函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478351/

相关文章:

java - 在中文文本上使用 Python 中的斯坦福解析器不起作用

python - 石头,布,剪刀,蜥蜴,spock游戏在gui python中

python - 旋转具有重复值的数据框

python - 运行多个外部程序

sql-server - 如何在 SQL Server 中将纪元时间与 24 小时前进行比较?

python - 为什么 Python 返回负时区值?

javascript - Node.js - 尝试在回调函数中嵌入回调函数

c - 在 C 中获取日期和时间时遇到问题。我寻找答案并尝试了很多,但没有成功,

javascript - 从回调中检索原始上下文

Java 使用 Swing 接收 CORBA 回调