簡體   English   中英

為什么我的python程序在eclipse / pydev中調試這么慢?

[英]Why is debugging in eclipse/pydev so slow for my python program?

我有一個相對簡單(沒有類)的python 2.7程序。 該程序的第一件事是將sqlite dbase讀入字典。 數據庫很大,但不是很大,在磁盤上大約90Meg。 讀入大約需要20秒。在數據庫中讀取后,我會初始化一些變量,例如

localMax = 0
localMin = 0
firstTime = True

當我在Eclipse-3.7.0 / pydev中調試這個程序時 - 即使是這些簡單的行 - 調試器中的每個步驟都會占用100%的核心,並且需要5到10秒。 我可以看到python進程達到100%cpu 10秒。 單步......等待10秒......單步......等待10秒......如果我只是在命令行調試,只使用pdb,沒問題。 如果我根本不調試,程序以“正常”速度運行,沒有像Eclipse那樣奇怪。

我已經在具有4G內存的雙核Win7 PC,8核Ubuntu內存,8G內存,甚至是我的Mac Air上再現了這一點。 對於多平台開發來說,這是怎么回事! 我一直認為它會在某個地方發揮作用。 我永遠都不會接近內存不足。

在每個Eclipse的單步操作中,為什么python進程會跳轉到100%的CPU,需要10秒?

基於Mikko Ohtamaa的暗示,這是一個足夠好的解決方法。 我剛剛在Mac Air上驗證了以下內容:

  • 如果我只是關閉Eclipse GUI中的“變量”窗口,我可以以正常速度單步執行代碼。 哪個好,但是,呃,我沒有Variables窗口。
  • 對於我想看到的任何變量,我可以將光標懸停在變量上並查看值。 我並沒有試圖將鼠標懸停在我的大詞典上,而這本詞典就是罪魁禍首。
  • 我也可以右鍵單擊任何變量並添加一個'Watch',它會彈出一個'Expressions'窗口。 在這種情況下,變量只是'表達式的簡並情況(非常簡單的情況)。

因此,我的解決方法是關閉Eclipse Variable窗口,並使用Expressions窗口有選擇地查看變量。 一個痛苦,但對於調試我正在做的比pdb更好。

我簡單地評論了這一行:

np.set_printoptions(threshold = 'nan')

似乎eclipse試圖跟上太多的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM