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

标签 python eclipse performance pydev usability

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

localMax = 0
localMin = 0
firstTime = True

当我在 Eclipse-3.7.0/pydev 中调试这个程序时——即使是这些简单的行——调试器中的每个单步都会占用 100% 的内核,并且需要 5 到 10 秒。我可以看到 python 进程在 10 秒内达到 100% cpu。单步...等待 10 秒...单步...等待 10 秒...如果我只使用 pdb 在命令行调试,没问题。如果我根本不进行调试,程序将以“正常”速度运行,这与 Eclipse 中的一样不奇怪。

我已经在带 4G 内存的双核 Win7 PC、带 8G 内存的 8 核 Ubuntu 机器甚至我的 Mac Air 上重现了这个。多平台开发怎么样!我一直认为它会在某处 起作用。我从来没有在任何时候接近耗尽内存。

为什么在每次 Eclipse 单步执行时,python 进程都会跳到 100% CPU,并且需要 10 秒?

最佳答案

根据 Mikko Ohtamaa 的提示,这里有一个足够好的解决方法。我刚刚在我的 Mac Air 上验证了以下内容:

  • 如果我只是关闭 Eclipse GUI 中的“变量”窗口,我就可以以正常速度单步执行代码。这很好,但是,呃,我没有“变量”窗口。
  • 对于我想查看的任何变量,我可以将光标悬停在该变量上并查看其值。我没有试图将鼠标悬停在我的大词典上,这是这里的罪魁祸首。
  • 我还可以右键单击任何变量并添加一个“观察”,这会弹出一个“表达式”窗口。在这种情况下,变量只是 '表达式的退化情况(非常简单的情况)。

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

关于python - 为什么我的 python 程序在 eclipse/pydev 中调试这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893553/

相关文章:

python - 在 pygame 中未按下时如何将按钮的值设置回 False

java - 如何更改 Eclipse 中生成的 Javadocs 模板?

Java if 语句结构和指令流水线

java - postInstantiate buildSessionFactory 慢/内存巨大的数据库

python - 如何将两个不同长度的列表写入csv文件中的列和行

python - Pip + WSGI 导入错误

Python:如何将函数分配给对象属性?

android - 色带 Android 解决方案

Eclipse 工作区概念问题(或 "Am I even close to understanding this workbench thing?")

Java 作为 Java 的脚本语言?