使用spyder进行Python分析:成分的时间不等于总函数的时间

时间:2018-07-31 17:51:05

标签: python profiling

我正在使用Spyder IDE分析我的python代码。

如下面的屏幕截图所示,它花费了1.20分钟= 80 _get_loglik_seq函数执行的秒数。但是,构成此功能的各种功能/过程的时间如下:solve_EV = 29.78s,c_get_gamma = 10.12秒,norm = 6.57秒,outer = 4.70秒,<method dot ...:2.17秒,所有其他时间:<1秒。

如果将这些时间相加,结果将约为54 s,比80s小得多。

怎么可能?是探查器错误还是我错过了什么?谁能为Python代码分析提供一个好的工具? (我在Mac OS上工作)

谢谢, 米哈伊尔

enter image description here

1 个答案:

答案 0 :(得分:1)

原因如下:

总时间=函数执行时间,包括所有子功能。

本地时间=没有子功能的函数的执行时间。

因此,如果函数p调用子函数s1s2s3,则:

ToTtime(p)=ToTtime(s1)+ToTtime(s1)+ToTtime(s1)+Localtime(p),

大致成立。