我有一個比較簡單的(無類)python 2.7程序。程序所做的第一件事是將sqlite dbase讀入字典。數據庫很大,但不是很大,大約90Meg在磁盤上。讀入大約需要20秒。讀入數據庫後,我初始化一些變量,例如爲什麼eclipse/pydev中的調試對我的python程序太慢了?
localMax = 0
localMin = 0
firstTime = True
當我在Eclipse-3.7.0/PyDev的調試這個程序 - 即使這些簡單的線條 - 每個單步在調試器吃掉的芯的100%,並且在5和10秒之間發生。我可以看到python進程達到100%cpu 10秒。單步...等待10秒...單步...等待10秒...如果我在命令行使用pdb進行調試,沒有問題。如果我根本沒有進行調試,程序運行速度「正常」,沒有什麼奇怪的,比如在Eclipse中。
我已經轉載了一個雙核心的Win7 PC瓦特/ 4G內存,我的8核心Ubuntu盒瓦特/ 8G內存,甚至我的Mac Air。這對於多平臺開發來說如何!我一直在想它會在的某處。我從來沒有想過在任何時候內存不足。
在每個Eclipse單步驟中,爲什麼python進程跳轉到100%的CPU,並需要10秒?
不知道,但我有一個預感,它可能與Eclipse調試器視圖有關,它試圖在看門狗窗口中輸出局部變量,並且某種程度上這個過程失敗了(例如,它試圖將SQlite數據庫的轉儲打印爲字符串)。唯一的辦法是推出一個完整的程序源代碼,以可重複的方式表達問題。 –
[http://www.jetbrains.com/pycharm/ –
]根據我的經驗,我只是吃了太多的日食,吃了太多的記憶,而且在一些地方慢,我決定學習PDB。它的老方法,但它的速度很快,它永遠不會讓你失望。我使用名爲ipdb btw的增強版本。 – Hassek