Problemas de rendimiento??

Chema Cortés ch3m4 en ch3m4.org
Jue Jul 31 12:39:58 CEST 2003


Diego Chaparro escribió:
>     Os cuento, estoy empezando a hacer una aplicación que tiene como 
> finalidad el procesamiento de datos. Básicamente tendrá como entrada dos 
> ficheros con datos, los tratará de alguna forma ( convertir valores, 
> comparar, ... ) y generará unos resultados. La cuestión es que el 
> volumen de datos que tendrá que tratar será muy elevado, puede que cada 
> fichero pueda tener hasta 800.000 o 1.000.000 de líneas, y me preocupa 
> que sea un proceso demasiado pesado para hacer con python, porque 
> siempre he leido que cuando se quería hacer procesamiento complejo de 
> datos sería más eficiente utilizar llamadas a código c que hiciera el 
> procesamiento.
>     ¿Qué pensáis? ¿Me olvido de hacerlo en python directamente o intento 
> hacerlo en python optimizando los algoritmos para tratar los datos? 
> ¿Alguna experiencia similar? ¿Consejos?

Yo estoy manejando ficheros de este tamaño, y lo estoy haciendo en 
python sin problemas con un PC dual pentium 1Ghz. Incluso tengo los 
ficheros comprimidos con gzip, y ni siquiera los descomprimo para 
procesarlos. Una vez dudé de sí el equipo iba a aguantar cuando tuve que 
cargar un diccionario para comparar las líneas que iba leyendo, y si 
embargo no tuve ningún problema, resultando aceptablemente rápido.

Pero todo dependerá de la complejidad del procesamiento que vayas a 
hacer. Si vas a emplear cálculo masivos con números de coma flotante 
puede que convenga hacerlo en C para aprovechar al máximo el hardware 
FPU de tu PC.

Debes evaluar no sólo el rendimiento de tu programa, si no también tu 
propio rendimiento como programador. En python, además de codificar más 
rápido, se cometen menos errores, y se mantiene mejor el código.




Más información sobre la lista de distribución Python-es