¿Por qué la depuración en eclipse / pydev es tan lenta para mi progtwig python?

Tengo un progtwig Python 2.7 relativamente simple (sin clases). Lo primero que hace el progtwig es leer una base de datos sqlite en un diccionario. La base de datos es grande, pero no enorme, alrededor de 90Meg en el disco. Se tarda unos 20 segundos en leer. Después de leer la base de datos, inicializo algunas variables, por ejemplo,

localMax = 0 localMin = 0 firstTime = True 

Cuando depuro este progtwig en Eclipse-3.7.0 / pydev, incluso estas líneas simples, cada paso en el depurador consume el 100% de un núcleo, y toma entre 5 y 10 segundos. Puedo ver que el proceso de python va al 100% de la CPU durante 10 segundos. Un solo paso … espere 10 segundos … un solo paso … espere 10 segundos … Si realizo una depuración en la línea de comandos usando solo pdb, no hay problemas. Si no estoy haciendo ninguna depuración, el progtwig se ejecuta a una velocidad “normal”, nada extraño como en Eclipse.

He reproducido esto en una PC Win7 de doble núcleo con memoria 4G, mi caja de Ubuntu de 8 núcleos con 8G de memoria e incluso mi Mac Air. ¿Cómo es eso para el desarrollo multiplataforma! Seguí pensando que funcionaría en alguna parte . Ni siquiera estoy cerca de quedarme sin memoria en ningún momento.

En cada paso de Eclipse, ¿por qué el proceso de Python salta al 100% de la CPU y tarda 10 segundos?

Aquí hay una solución bastante buena, basada en la sugerencia de Mikko Ohtamaa. Acabo de verificar lo siguiente en mi Mac Air:

  • Si simplemente cierro la ventana ‘Variables’ en la GUI de Eclipse, puedo pasar por el código a una velocidad normal. Lo que es genial, pero, uh, no tengo la ventana de Variables.
  • Para cualquier variable que quiera ver, puedo mover el cursor sobre la variable y ver el valor. No intenté pasar por encima de mi gran diccionario que es el culpable aquí.
  • También puedo hacer clic con el botón derecho en cualquier variable y agregar un ‘Reloj’, que muestra una ventana de ‘Expresiones’. En este caso, la variable es solo un caso degenerado (caso muy simple) de una expresión ‘.

Entonces, la solución para mí es cerrar la ventana de variables de Eclipse y usar la ventana de expresiones para ver las variables de forma selectiva. Un dolor, pero para la depuración que estoy haciendo es mejor que pdb.

Simplemente comenté esta línea:

 np.set_printoptions(threshold = 'nan') 

Parece que eclipse está tratando de mantenerse al día con demasiada información.