2016-11-09 101 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