我在解释数据时遇到了问题。为了向您展示我的问题,我创建了这个简单的脚本。
函数D调用B和C,它们都调用A。 函数A明显需要1秒钟(加上开销)。 如果我们查看snakeviz结果,那么可以看出报告有点奇怪。我知道函数A总共花费了2秒钟,但是在函数C内,函数A只花费了1秒钟,这正是我感兴趣的。是否有人知道是否有设置(或不同的查看器)可以解决这个问题?
函数D调用B和C,它们都调用A。 函数A明显需要1秒钟(加上开销)。 如果我们查看snakeviz结果,那么可以看出报告有点奇怪。我知道函数A总共花费了2秒钟,但是在函数C内,函数A只花费了1秒钟,这正是我感兴趣的。是否有人知道是否有设置(或不同的查看器)可以解决这个问题?
import time
import cProfile
def A():
time.sleep(1)
def B():
A()
def C():
A()
def D():
B()
C()
cProfile.run('D()','profileResults.prf')
D()
进行分析,其中函数A()
间接调用了2次,因此显示了2秒钟。从函数D()
中仅调用一次函数C()
。 从函数C()
中,也仅调用一次函数A()
。因此,函数C()
的时间应为1秒钟。如果您单独分析函数C()
,则将在所有地方获得1秒钟。 - Soumendra