我想從腳本中計時函數,最好不要修改所述腳本(即添加計時器裝飾器或函數)。
1 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
從命令行,將timeit模塊作為傳遞附加設置參數 (-s)的腳本運行。設置應該從腳本中導入您想要計時的函數。
最后,記住添加對該函數的調用。
警告:安裝程序將運行一次,導入您的腳本。導入運行所有“不受保護的代碼”,因此請記住使用if __name__ == "__main__"
約定將函數/對象聲明與實際執行分開。
想象一下以下 script.py
import time
print('This will be run on import')
def fun():
pass
def very_complex_function_that_takes_an_hour_to_run():
time.sleep(3600)
if __name__ == '__main__':
print("Nothing beyond the if condition will be run on import")
very_complex_function_that_takes_an_hour_to_run()
讓我們計時fun,運行 100 次。
$ python -m timeit -s 'from test import fun' -n 100 'fun()'
輸出
This will be run on import
100 loops, best of 5: 66.6 nsec per loop
添加回答
舉報
0/150
提交
取消