¡Salve el planeta! Programar en C, evitar Python, Perl

Como ex ingeniero de software que trabajó principalmente con programación en C y, en menor medida, ensamblador, sé en mi corazón que esos son los dos lenguajes de programación más eficientes ya que están muy cerca del hardware.

Pero para despejar cualquier duda, un equipo de investigadores universitarios portugueses intentó cuantificar la eficiencia energética de diferentes lenguajes de programación (y de su compilador/intérprete) en un artículo titulado Energy Efficiency across Programming Languages publicado en 2017, donde analizaron el tiempo de ejecución, el uso de memoria y el consumo de energía de veintisiete lenguajes de programación conocidos. C es el ganador indiscutible aquí siendo el más eficiente, mientras que Python, que ahora llamaré el lenguaje de programación de los contaminadores :), está justo en la parte inferior de la escala junto con Perl.

El estudio pasa por la metodología y varios puntos de referencia, pero escojamos los resultados de los árboles binarios para ilustrar el punto que comienza con el código compilado.

árboles-binarios compilados

Para sorpresa de nadie, el estudio concluye que» los lenguajes compilados tienden a ser, como se esperaba, los más rápidos y con mayor eficiencia energética «. Los lenguajes C y C++ son los lenguajes más eficientes y rápidos . Go es el peor lenguaje de la categoría de lenguajes compilados, y es incluso peor que los lenguajes que dependen de una máquina virtual como Java o Erlang, al menos con la muestra de árboles binarios utilizada.

eficiencia de código VM

Pero la corona de los lenguajes más ineficientes es para lenguajes interpretados como Perl, Lua o Python, y eso es por cierto margen.

idiomas interpretados deficiente eficiencia

Debe tenerse en cuenta que todas las pruebas se realizaron en una máquina basada en una CPU Intel Core i5-4460 Haswell a 3,20 GHz con 16 GB de RAM y con el sistema operativo Ubuntu Server 16.10 con Linux. 4.8.0-22. Teniendo en cuenta que MicroPyhon ahora se ejecuta en una amplia gama de microcontroladores, sospecho que puede no ser tan malo en aquellas plataformas con una huella más pequeña, y sería interesante descubrir la diferencia.

energía de memoria de tiempo lenguajes de programación

El estudio también clasificó cada idioma con diferentes combinaciones de objetivos, mezclando parámetros de tiempo, memoria y energía, y C siempre está en la parte superior con esas métricas. Eso se sabe desde hace años, pero si desea optimizar su programa para la vida útil de la batería/bajo consumo, algunas de las rutinas deberían optimizarse en C, ensamblador, instrucciones SIMD o instrucciones personalizadas para aceleradores.

Traducido del artículo en inglés «Save the planet! Program in C, avoid Python, Perl«.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments