Tengo un programa relativamente simple (sin clases) de Python 2.7. Lo primero que hace el programa es leer una base de datos sqlite en un diccionario. La base de datos es grande, pero no enorme, alrededor de 90 Meg en el disco. La lectura tarda unos 20 segundos. Después de leer en la base de datos inicializo algunas variables, p.¿Por qué la depuración en eclipse/pydev es tan lenta para mi programa python?
localMax = 0
localMin = 0
firstTime = True
Cuando depurar este programa en Eclipse-3.7.0/PyDev - incluso estas líneas simples - cada solo paso en el depurador come hasta 100% de un núcleo, y tarda 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 depuro en la línea de comandos simplemente usando pdb, no hay problemas. Si no estoy depurando, el programa se ejecuta a velocidad "normal", nada extraño como en Eclipse.
He reproducido esto en un PC de doble núcleo Win7 con memoria 4G, mi 8 base de Ubuntu con w/8G de memoria, e incluso mi Mac Air. ¿Cómo es eso para el desarrollo multiplataforma? Seguí pensando que funcionaría en algún lugar. Nunca estoy cerca de quedarme sin memoria en ningún momento.
En cada Eclipse de un solo paso, ¿por qué el proceso de python pasa al 100% de la CPU y tarda 10 segundos?
idea, pero tengo la corazonada de que podría estar relacionado con la vista del depurador Eclipse que intenta generar variables locales en la ventana de vigilancia y de alguna manera este proceso está fallando (por ejemplo, intenta imprimir un volcado de la base de datos SQlite como una cadena) La única forma de avanzar con esto es publicar un código fuente completo del programa que exprese el problema de manera repetible. –
[Esto puede salvarle el día] (http://www.jetbrains.com/pycharm/) –
En mi experiencia, me he enfurecido tantas veces con el eclipse tomando tanta memoria y he tardado en algunas partes que decidí aprender pdb. Es el camino antiguo, pero es rápido y nunca te fallará. Yo uso una versión mejorada llamada ipdb por cierto. – Hassek