【发布时间】:2011-10-17 03:18:48
【问题描述】:
我有一个相对简单(无类)的 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秒?
【问题讨论】:
-
不知道,但我有一种预感,它可能与 Eclipse 调试器视图有关,它试图在看门狗窗口中输出局部变量,并且这个过程以某种方式失败(例如,它试图打印SQlite 数据库作为字符串)。解决这个问题的唯一方法是发布完整的程序源代码,以可重复的方式表达问题。
-
根据我的经验,我只是因为 eclipse 占用了太多内存而愤怒了很多次,并且在某些部分很慢,所以我决定学习 pdb。它是旧的方式,但它的速度很快,它永远不会让你失望。我使用了一个名为 ipdb btw 的增强版本。
-
如果 Eclispe 试图“观看”我的大字典,Eclipse 会在每一步都“忙碌”。有什么方法可以让 Eclipse 忽略我的大字典?也许如果我只是关闭 Eclipse GUI 中的变量窗口...
-
我在 Windows 和 Linux 上使用 Eclipse 来开发、管理和调试庞大的 Java 代码库和非常简单的 Python 项目。两年来,我从未遇到过使用 Java 的缓慢问题,而在这方面,PyDev 开发导致了 PITA,即使在多核系统上也是如此。不幸的是,我得出的结论是,实际上,如果不接受(有时是大的)妥协,Eclipse 平台并不是 Python 编程的最佳工具。
标签: python eclipse performance pydev usability