我跑了这个:
In [303]: %prun my_function()
384707 function calls (378009 primitive calls) in 83.116 CPU seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
37706 41.693 0.001 41.693 0.001 {max}
20039 36.000 0.002 36.000 0.002 {min}
18835 1.848 0.000 2.208 0.000 helper.py:119(fftfreq)
- 剪断 -
每次tottime,percall,cumtime是什么? ncalls相当明显(调用函数的次数)。我的 guess 是tottime是函数花费的总时间,不包括在自己的函数调用中花费的时间; percall是???; cumtime是在函数调用中花费的总时间,包括在其自己的函数调用中花费的时间(当然,不包括重复计数)。 docs不太有用;谷歌搜索也无济于事。
答案 0 :(得分:31)
它只是Python自己的探查器的一个方便的包装器,其文档在这里:
http://docs.python.org/library/profile.html#module-pstats
引用:
<强> ncalls 强> 对于通话次数,
tottime 表示在给定函数中花费的总时间(并且不包括调用子函数所花费的时间),
percall 是tottime除以ncalls的商数
cumtime 是在此和所有子功能(从调用到退出)中花费的总时间。这个数字即使对于递归也是准确的 功能
percall 是cumtime除以原始调用的商数