2
在命令行中,我可以這樣做:強制timeit自動選擇次聲明的次數執行
python -m timeit 'a = 1'
根據文檔:
如果-n沒有給出一個合適的通過嘗試10的連續功率 直到總時間至少0.2秒來計算迴路數。
這很好,但在我的程序中使用timeit
時,我該如何獲得相同的行爲?如果我忽略timeit.timeit
調用的number
參數,它將簡單地默認爲1000000
。
在命令行中,我可以這樣做:強制timeit自動選擇次聲明的次數執行
python -m timeit 'a = 1'
根據文檔:
如果-n沒有給出一個合適的通過嘗試10的連續功率 直到總時間至少0.2秒來計算迴路數。
這很好,但在我的程序中使用timeit
時,我該如何獲得相同的行爲?如果我忽略timeit.timeit
調用的number
參數,它將簡單地默認爲1000000
。
該文檔不明顯,存在這樣的功能,我會假設沒有。幸運的是,定義一個包裝,它會爲你是不是太難:
import timeit
def auto_timeit(stmt='pass', setup='pass'):
n = 1
t = timeit.timeit(stmt, setup, number=n)
while t < 0.2:
n *= 10
t = timeit.timeit(stmt, setup, number=n)
return t/n # normalise to time-per-run
這裏是寫一個包裝替代:
import subprocess
import sys
subprocess.call([sys.executable, '-m', 'timeit', stmt])
爲什麼這個答案downvoted?我沒有看到任何明顯的問題。 – max 2012-04-26 02:41:27