Comparación de Rendimiento entre Python, Java y .Net

Mito:

Python es pesado

Hechos:

Comparando los instaladores de los entornos de desarrollo:

Habría que ver bien que funionalidad trae cada uno, pero tomando muy por arriba, nos da una idea que el codigo python es mucho mas compacto, considerando que en 354MB entra mucha mas "complejidad" que en 10MB (codigo, documentación, herramientas, etc.).

Comparando los lenguajes:

Resumen:

En resumen basandonos en las comparaciones anteriores:

Nota: Se puede estimar que .Net estaría a la altura de Java respecto al rendimiento, cosa que no se puede comprobar ya que .Net no corre en linux que es el sistema desde donde se efecturon las mediciones (ver fuentes)

Observaciones:

Si tomaramos el rendimiento de un programador sólo en funcion de las lineas de código que produce (y estas serían constantes e intercambiables entre los distintos programadores, o sea, que todos los programadores rindieramos igual), se podría decir que un programador de python equivale a 3 programadores de java, o lo que es lo mismo, que un programador de python realiza su trabajo en 3 veces menos el tiempo. :)

Fuentes:

Análisis "en perspectiva" de comparaciones de rendimiento

Analizando una comparativa de 9 lenguajes de programación / formas de compilación #1, en el cuadro de la página 3 encontramos un resumen (no muy favorable) y un gráfico donde directamente se excluyo Python por el bajo desempeño en algunas de las pruebas.

Sin embargo, debemos ver estos datos en perspectiva, como se hace notar en el wiki de Python #3. Uno debe tener en cuenta si los puntos flacos del interprete afectan el desempeño de la propia aplicación.

Al mismo tiempo, en el sitio oficial de Python (#2 y #3) se dan ejemplos de código y consejos para mejorar el desempeño.

Volviendo a la tabla comparativa de desempeño del articulo #1, vemos que el desempeño de python en grandes operaciones matemáticas dista de ser el mejor (sea con enteros, punto flotante, punto flotante de doble precisión y trigonométricas). Para mejorarlo podemos usar Pyrex, que es un Python que se compila (aunque con limitaciones en la cantidad de módulos disponibles). Pero su velocidad es casi tan buena como la de C++ puro y mayor que MatLab u Octave #4.

Ahora bien, si nuestro punto critico no son los cálculos matemáticos, sino la velocidad de Entrada/Salida (I/O), vemos que en estos benchmarks la velocidad de Python es apenas menor que Visual C++, o incluso igual cuando se usa Psyco.

Referencias

  1. Comparación entre nueve lenguajes

  2. Cuestiones de Rendimiento (python.org)

  3. Tips para mejorar la Rendimiento de python (python.org)

  4. Rendimiento en python sobre operaciones matemáticas

RendimientoPythonVsJavaVsNet (última edición 2009-04-20 18:34:42 efectuada por localhost)

USLA