我正在使用Windows上的python进行编程,并希望准确地测量函数运行所需的时间.我编写了一个函数"time_it",它接受另一个函数,运行它,并返回运行所花费的时间.
def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000
Run Code Online (Sandbox Code Playgroud)
我称之为1000次,并对结果取平均值.(最后的1000常量是以毫秒为单位给出答案.)
这个功能似乎有效,但我有这种唠叨的感觉,我做错了,通过这样做,我使用的时间超过了它运行时实际使用的功能.
是否有更标准或可接受的方式来做到这一点?
当我更改我的测试函数以调用打印以使其花费更长时间时,我的time_it函数返回平均2.5 ms,而cProfile.run('f()')返回并平均为7.0 ms.我认为我的功能会高估时间,如果有的话,这里发生了什么?
还有一点需要注意,它是我所关心的功能相对时间,而不是绝对时间,因为这显然会因硬件和其他因素而异.