我有一个相对简单(没有类)的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秒?
答案 0 :(得分:7)
根据Mikko Ohtamaa的暗示,这是一个足够好的解决方法。我刚刚在Mac Air上验证了以下内容:
因此,我的解决方法是关闭Eclipse Variable窗口,并使用Expressions窗口有选择地查看变量。很痛苦,但对于调试我正在做的比pdb更好。
答案 1 :(得分:1)
我只是评论了这一行:
np.set_printoptions(threshold = 'nan')
看来eclipse正试图跟上太多的信息。