当我使用 显示分析数据pstats
时,第一列是每个函数的调用次数。
但是,当我对数据进行排序时,我可以在和键之间calls
进行选择。文档说,并且是呼叫计数,什么时候是原始呼叫计数。排序依据还是相同?有什么不同?ncalls
pcalls
calls
ncalls
pcalls
calls
ncalls
pcalls
http://docs.python.org/2/library/profile.html#module-cProfile
我们将原语定义为表示调用不是通过递归引起的。
...当函数不递归时,这两个值是相同的
calls
按或排序ncalls
是一样的。
当第一列有两个数字时(例如 43/3),则后者为原始调用次数,前者为实际调用次数。注意,当函数不递归时,这两个值是一样的,只打印单个图:
In [43]: def a(i):
....: if i == 0:
....: return
....: a(i-1)
....:
In [54]: %prun a(0)
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 <ipython-input-43-25b7f3d268b8>:1(a)
In [55]: %prun a(1)
ncalls tottime percall cumtime percall filename:lineno(function)
2/1 0.000 0.000 0.000 0.000 <ipython-input-43-25b7f3d268b8>:1(a)
In [56]: %prun a(3)
ncalls tottime percall cumtime percall filename:lineno(function)
4/1 0.000 0.000 0.000 0.000 <ipython-input-43-25b7f3d268b8>:1(a)