El motivo de esta entrada es dar a conocer otras opciones de #Python cuando la velocidad de procesamiento es crítica. La fuente la he sacado de un video de Youtube titulado High Performance Python, y cuyo código fuente teneis aquí en GitHub.
Se trata de que un mismo proceso puedo funcionar hasta 200-300 veces más rápido si está optimizado, y si encima utiliza alguna versión alternativa de Python. Aquí puedes conocer todas las oficiales: www.python.org/download/alternatives.
En anteriores entradas hemos conocido dos de ellas: Anaconda, y Python Portable, pero hay más. La primera está indicada para tratamiento de datos, mientras que la segunda es para llevar contigo siempre en una memoria USB.
En el video de arriba (si tienes 3 horas, claro!) puedes ver la implementación de un algoritmo que lleva 240 segundos en Python, pero que lleva mucho menos si se usa PyPy, o uncluso baja de 90 segundos (siempre es la misma tarea y “casi” el mismo código) en Cython, e includo baja a 20 con multiplocessing y compilado en C. Increible, eh?
En el video, el conferenciante habla de unas cuantas herramientas para trabajar con Python, y entre las que más me ha llamado la atención, nombrar a RunSnakeRun, para conocer los tiempos de implementación de una rutina, dónde están los puntos críticos, etc, … y encima, todo visual.
En resumen, si tienes un proceso que depende de la velocidad de ejección, deberías valorar la utilización de alguna implementación alternativa de Python, que las hay, y que con pocos cambios puedes conseguir tiempos de procesamiento más próximos a tus objetivos.
Yo no he probado (de momento) nada de lo que he probado arriba, pero lo sumo a las tareas pendientes!