C, Perl, Java, Python, Ruby, PHP ¿quién es más veloz?

Esta mañana estaba algo aburrida y se me ocurrió hacer un experimento: comparar la velocidad a la que se ejecuta un mismo algoritmo en diversos lenguajes de programación. Para ello, hice un pequeño algoritmo que imprime parte de la serie de Fibonacci, en los siguientes lenguajes:

En C. Archivo: foo.c

En Java. Archivo: Foo.java

En Perl. Archivo: foo.pl

En Python. Archivo: foo.py

En PHP. Archivo: foo.php

[nuevo] En Ruby. Archivo: foo.rb

Exceptuando los archivos en C y Java que deberán ser compilados (ver más adelante), al resto de los archivos les asigné permisos de ejecución para que sea más cómodo correrlos:

Y a continuación, me dediqué primero, a comparar la velocidad de compilación entre Java y C y obtuve estos resultados:

Tiempo de compilación en C:

Tiempo de compilación en Java:

Se podría decir que la compilación en C, tardó (más o menos) la mitad del tiempo que la compilación en Java.

Finalmente ejecuté cada uno de los micro-programas, dos veces cada uno: la primera, para que se cachearan y la segunda, para comparar la diferencia en la velocidad de ejecución y ésto, fue lo que obtuve:

Tiempo de ejecución en C: 0.002 segundos

Tiempo de ejecución en Java: 0.143 segundos

Tiempo de ejecución en Perl: 0.003 segundos

Tiempo de ejecución en Python: 0.038 segundos

Tiempo de ejecución en PHP: 0.027 segundos

Tiempo de ejecución en Ruby: 0.009 segundos

Si se tratara de una carrera de autos 😀 la tabla de posiciones sería como la siguiente:

Es decir que PHP demoró 13.5 veces más que C; Python, 12.6 veces más que Perl y Java… mejor no lo comparo con ninguno 😀

 

eugeniabahit