使用 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