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