En el contexto de la creciente popularidad de Python, impulsada por su facilidad de uso y extensas bibliotecas, investigadores de la Vrije Universiteit Amsterdam realizaron un estudio exhaustivo sobre cómo la compilación puede impactar tanto el rendimiento como el consumo de energía del código de Python. Usando un total de ocho compiladores, incluyendo herramientas como PyPy, Numba y Codon, los investigadores evaluaron siete benchmarks distintos realizados en plataformas de prueba como un NUC y un servidor.
Python, conocido por su flexibilidad, enfrenta desafíos notables en cuanto a su eficiencia energética y de ejecución, en comparación con lenguajes compilados. En particular, los estudios comparativos situaron a Python en los últimos puestos en términos de tiempo de ejecución y uso de memoria, destacando el sobrecosto inherente del intérprete.
Los resultados del experimento arrojaron que los compiladores pueden mejorar significativamente el tiempo de ejecución y la eficiencia energética del código de Python. PyPy, Numba y Codon mostraron mejoras espectaculares superando el 90% de eficiencia energética y velocidad. Codon destacó particularmente con una mejora energética de hasta el 99.06% en uno de los benchmarks, superando hasta 89 veces la velocidad de ejecución estándar de CPython en ciertos casos.
Sin embargo, no todo fueron resultados positivos. Las pruebas revelaron que ciertos compiladores podrían incluso incrementar el consumo energético dependiendo de las características del código, como ocurrió con los compiladores Mypyc, Cython y Nuitka en el benchmark n_body. Además, el impacto en la tasa de fallos de la última caché no fue consistente, sugiriendo que la optimización del uso de la caché sigue siendo un desafío.
Los investigadores concluyen que si bien el uso de compiladores puede traer mejoras significativas, la elección del mismo debe tener en cuenta las características del código a optimizar y las capacidades del compilador para integrarse eficientemente con las bibliotecas utilizadas comúnmente como NumPy y la compatibilidad en general.
La culminación de este estudio ofrece a los desarrolladores herramientas y conocimientos para tomar decisiones más informadas sobre qué compiladores emplear, considerando no solo las mejoras en eficiencia, sino también la facilidad de implementación y la necesidad de modificaciones en el código existente. Esta capacidad de mejorar la ejecución y minimizar el consumo energético posiciona a Python como una opción aún más viable en el desarrollo de aplicaciones que requieran eficiencia, sin poner en peligro sus beneficios de accesibilidad.