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