Aupa Gorka,

Ostirala 28 Urtarrila 2011(e)an, Gorka Prieto(e)k idatzi zuen:
> No sabía si poner el off-topic en el subject, así que lo pongo aquí ;P
> 
> Buscando pruebas de tiempos de ejecución de diferentes lenguajes y runtimes
> he dado con estas gráficas que seguro que a alguien más de la lista le
> interesan.

Sobre benchmarks siempre suelo mirar The Computer Language Benchmarks Game[1], 
aunque no salen las versiones privativas, pero sí salen otras VMs interesantes 
como la de SBCL, V8, LuaJit, etc. (aunque falten otras interesantes como 
parrot y la VM de Factor).

> Me llama la atención la "poca" diferencia de tiempos entre C++ y Java/.NET
> y también me ha sorprendido el mejor rendimiento de las plataformas libres
> :)
> 
> Yo hace unos años hice mis pruebas con algoritmos de procesamiento de señal
> y los resultados eran mucho más favorecedores para C/C++ y especialmente
> malos para Java frente a .NET, pero estas gráficas rompen un poco mis
> esquemas. Alguien en la lista que pueda aportar un poco más de luz sobre
> el tema?

Con respecto a lo de 'poca' diferencia, yo diría que:

a) es un término relativo, y
b) si miras la gráfica en el enlace, verás que hay bastante varianza en el 
rendimiento. Esto quiere decir que dependiendo del tipo de problema, el 
rendimiento puede ser mejor, y en otros casos, bastante peor. O, como suelen 
decir, los benchmarks no sirven para nada. Hay que tener en cuenta además que 
se trata de microbenchmarks, con lo que dejan de tener sentido cuando queremos 
hacer un programa más grande en los que ya cambia la forma de construirlo en 
función del lenguaje.

En mi limitada experiencia, me he encontrado con situaciones como la que 
comentas, casos en los que las pruebas no corresponden con el 'teórico' 
rendimiento del lenguaje, aunque como norma general sirve como orientación.

En cualquier caso, creo que lo que vienen a indicar estas gráficas se que la 
tecnología de máquinas virtuales es lo suficientemente buena como para poder 
hacer uso generalizado de este tipo de lenguajes, aún en aplicaciones en las 
que el rendimiento sea importante. Y esto es así no sólo con lenguajes como 
Java o C#, sino con lenguajes de más alto nivel como Ocaml, Haskell, Common 
Lisp, etc. Por qué su uso no se populariza frente a lenguajes como Python o 
Ruby, que ofrecen una expresividad similar o menor con un rendimiento inferior 
es algo que no acabo de entender.

Con respecto a por qué las implementaciones libres son más eficientes que las 
privativas, ni idea.

[1] http://shootout.alioth.debian.org/u32/which-programming-languages-are-
fastest.php
-- 
Alfredo Beaumont Sainz
http://alfredobeaumont.org/

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
ITSAS mailing list
[email protected]
http://list.ehu.es/mailman/listinfo/itsas

Responder a