我正在用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