在Python cProfile中,调用计数和基元调用计数之间有什么区别?
当我使用在Python cProfile中,调用计数和基元调用计数之间有什么区别?,python,profiling,Python,Profiling,当我使用pstats显示分析数据时,第一列是每个函数的调用数 但是,当我对数据进行排序时,我可以在调用、ncall和pcall键之间进行选择。文档说明,calls和ncalls是调用计数,而pcalls是原始调用计数。按调用或ncalls排序是否相同?与pcall有什么不同 我们将原语定义为表示调用不是通过递归诱导的 …当函数不递归时,这两个值是相同的 按调用或ncall排序是相同的 当第一列中有两个数字(例如43/3)时,后者是基本调用的数量,前者是实际调用的数量。请注意,当函数不递归时,
pstats
显示分析数据时,第一列是每个函数的调用数
但是,当我对数据进行排序时,我可以在调用
、ncall
和pcall
键之间进行选择。文档说明,calls
和ncalls
是调用计数,而pcalls
是原始调用计数。按调用
或ncalls
排序是否相同?与pcall
有什么不同
我们将原语定义为表示调用不是通过递归诱导的
…当函数不递归时,这两个值是相同的
按调用
或ncall
排序是相同的
当第一列中有两个数字(例如43/3)时,后者是基本调用的数量,前者是实际调用的数量。请注意,当函数不递归时,这两个值是相同的,只有一个数字是相同的 印刷品: [43]中的
:定义a(i):
..:如果i==0:
……返回
..:a(i-1)
....:
在[54]中:%pruna(0)
ncalls tottime percall cumtime percall文件名:lineno(函数)
1 0.000 0.000 0.000 0.000:1(a)
在[55]中:%修剪a(1)
ncalls tottime percall cumtime percall文件名:lineno(函数)
2/1 0.000 0.000 0.000 0.000:1(a)
在[56]:%pruna(3)
ncalls tottime percall cumtime percall文件名:lineno(函数)
4/1 0.000 0.000 0.000 0.000:1(a)
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)