我正在用python编程windows,并希望准确测量函数运行所需的时间。我写了一个函数“time_it”,它接受另一个函数,运行它并返回运行所需的时间。python中函数的准确定时
def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000
我把这1000次称为平均值。 (最后的1000常数以毫秒为单位给出答案)
此功能似乎有效,但我有这种唠叨的感觉,我做错了什么,而且通过这样做我正在使用比运行时实际使用的更多时间。
有没有一个更标准或接受的方式来做到这一点?
当我改变我的测试函数来调用打印,以便它需要更长时间时,我的time_it函数返回平均2.5毫秒,而cProfile.run('f()')返回并平均为7.0毫秒。我想我的功能会高估时间,如果有的话,这里发生了什么?
另外需要注意的是,我关心的是相互比较的功能相对时间,而不是绝对时间,因为硬件和其他因素会明显改变。
忽略我 - 该字符串不是函数名称,它是一个eval'd代码块。所以你可以用它来快速计时。这是正确的答案。而在其他消息中 - “不是”比“!=”快得多 - 但可能有其他影响。 – 2012-06-11 10:20:09
关于该切线 - 使用之前“不是”的任何聪明 - 记住这一点 - http://stackoverflow.com/questions/1392433/python-why-is-hello-is-hello – 2012-06-11 10:41:43