使用 cProfile(首選 Profiler)
Python 包含一個名為 cProfile 的探查器。這通常優於使用 timeit。
它會分解整個指令碼,並且對於指令碼中的每個方法都會告訴你:
ncalls
:呼叫方法的次數tottime
:給定函式花費的總時間(不包括呼叫子函式的時間)percall
:每次通話花費的時間。或者 tottime 除以 ncalls 的商cumtime
:在這個和所有子功能中的累計時間(從呼叫到退出)。即使對於遞迴函式,該數字也是準確的。percall
:是 cumtime 除以原始呼叫的商filename:lineno(function)
:提供每個功能的相應資料
可以使用以下命令在命令列上輕鬆呼叫 cProfiler:
$ python -m cProfile main.py
要按方法中的時間對返回的已分析方法列表進行排序:
$ python -m cProfile -s time main.py