我有一个相对简单(没有类)的 python 2.7 程序。该程序所做的第一件事是将 sqlite 数据库读入字典中。数据库很大,但不是很大,磁盘上大约 90Meg。读入大约需要20秒。读入数据库后我初始化一些变量,例如
localMax = 0
localMin = 0
firstTime = True
当我在 Eclipse-3.7.0/pydev 中调试这个程序时——即使是这些简单的代码行——调试器中的每个单步都会占用 100% 的内核,并且需要 5 到 10 秒的时间。我可以看到 python 进程的 cpu 利用率达到 100%,持续 10 秒。单步...等待 10 秒...单步...等待 10 秒...如果我仅使用 pdb 在命令行进行调试,则没有问题。如果我根本不进行调试,程序会以“正常”速度运行,没有什么奇怪的,就像在 Eclipse 中一样。
我已经在带 4G 内存的双核 Win7 PC、带 8G 内存的 8 核 Ubuntu 盒子,甚至我的 Mac Air 上重现了这一点。多平台开发怎么样!我一直认为它会在“某个地方”起作用。我任何时候都不会耗尽内存。 在每个 Eclipse 单步上,为什么 python 进程会跳到 100% CPU,并且需要 10 秒?
如果我只是关闭 Eclipse GUI 中的“变量”窗口,我就可以以正常速度单步执行代码。这很棒,但是,呃,我没有变量窗口。
np.set_printoptions(threshold = 'nan')
Eclipse 似乎试图跟上太多信息。