为什么我的python程序在eclipse/pydev中调试这么慢?

Ron*_*lis 8 python eclipse usability performance pydev

我有一个相对简单(没有类)的python 2.7程序.该程序的第一件事是将sqlite dbase读入字典.数据库很大,但不是很大,在磁盘上大约90Meg.读入大约需要20秒.在数据库中读取后,我会初始化一些变量,例如

localMax = 0
localMin = 0
firstTime = True
Run Code Online (Sandbox Code Playgroud)

当我在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秒?

Ron*_*lis 7

基于Mikko Ohtamaa的暗示,这是一个足够好的解决方法.我刚刚在Mac Air上验证了以下内容:

  • 如果我只是关闭Eclipse GUI中的"变量"窗口,我可以以正常速度单步执行代码.哪个好,但是,呃,我没有Variables窗口.
  • 对于我想看到的任何变量,我可以将光标悬停在变量上并查看值.我并没有试图将鼠标悬停在我的大词典上,而这本词典就是罪魁祸首.
  • 我也可以右键单击任何变量并添加一个'Watch',它会弹出一个'Expressions'窗口.在这种情况下,变量只是'表达式的简并情况(非常简单的情况).

因此,我的解决方法是关闭Eclipse Variable窗口,并使用Expressions窗口有选择地查看变量.一个痛苦,但对于调试我正在做的比pdb更好.