2016-11-09 102 views
0

enter image description here解释Python探查器

我在Spyder IDE中使用探查器来剖析一个简单的程序。其中一个功能make_geology是代码中最贪婪的部分。它似乎使用24.7时间单位(他们是秒?)。但是当我看到make_geology(我用黄色突出显示的所有内容)所做的所有呼叫时,该时间总计只会累计1.3个时间单位。

我误解了测量和分配函数所花的时间吗?我会花时间花在make_geology =花费在所有东西里面的时间总和make_geology

+0

你试过[*这个方法*](http://stackoverflow.com/a/4299378/23771)?首先,它对百分比敏感,而不是绝对测量,所以它直接告诉你什么是小猪。它也告诉你为什么。 –

回答

0

似乎make_geology有一些功能是在函数调用本身完成的,而不是“卸载”到其他组件(函数) 。试想一下,这样的事情:

def add_and_count(mylist, mynumber): 
    i = 0 
    while i < mynumber: 
     i = i + 1 
    mylist.append(i) 

如果mynumber的是0,执行add_and_count应约同执行列表的append通话的时间。如果mynumber是巨大的,list.append将是一个下降的桶

1

我提供了this PR来解决这个问题。

起初剖析如下: profiler_before

最后的结果是这样的: spyder 3 1 0 dev0 python 3 5 _001

任何建议或更正是受欢迎的。

问候

威廉Trigos