jueves junio 23, 2005

Java ¿lento?

Leo en Diario de un Programador un post acerca del artículo Micro Benchmarking C++, C#, and Java (publicado en la revista "C/C++ Users Journal"), en el que el autor realiza pruebas de rendimiento con dichos lenguajes.

Al parecer (y digo al parecer ya que no he podido leer el artículo porque hay que pagar), el ganador es C (gcc sobre Linux), seguido de Java y C++ (tanto Windows como Linux). Y el autor del post se sorprende del rendimiento de Java, tal y como relata en lo siguiente (cito):

Sabemos que Java es lento. No hay mas que instalar Eclipse para darse cuenta de ello. O cualquier otra aplicación grande. En mi experiencia personal es más lento que el .NET, por lo menos la sensación del usuario es esa. Sin embargo, en estos tests de rendimiento, gana. Y no es un problema de consumo de memoria, porque si tienes memoria suficiente (1,5 GB en mi caso), también lo es (me refiero con esto a que no tira de archivo de paginación, por lo que todo el asunto queda entre la RAM, la MMU y el procesador). ¿Dónde está, pues la lentitud en Java?

Mi respuesta es: la lentitud de Java está en la mitología (¿se dice así?) y la rumorología, alimentadas por frases falaces como "Sabemos que Java es lento". La realidad es bien distinta, tal y como al parecer ha demostrado el test. Aunque en realidad entiendo que el estigma de que Java es lento es algo que se adquirió hace años, cuando esa frase era más cierta. Y hoy en día, que ya no es así, resulta difícil librarse de la etiqueta de "lento".

El principal problema de la lentitud en la "experiencia del usuario" es, bajo mi punto de vista, el tener que levantar la máquina virtual. Esta idea se refuerza con la demostración de que las mismas operaciones en el lado del servidor eran mucho más rápidas. Y aún así, para explotar las posibilidades de Java en alto rendimiento, influyen muchos otros factores, como por ejemplo, estar a la última (no me vale que me digan que un programa ejecutado con JRE 1.3 es lento), comprender el funcionamiento interno de la máquina virtual, o escribir código Java optimizado y no chapuzas.

Si a alguien le interesa el tema, hace un tiempo di una charla en la Universidad Rey Juan Carlos titulada Java: Tecnología de alto rendimiento para aplicacionesde misión crítica, de la que están disponibles el vídeo y las transparencias.

(2005-06-23 23:02:37.0)

Permalink Comentarios [1]

Comentarios:

Yo nunca he hecho tests de este tipo pero yo creo q el problema puede estar en el tpo de creacion de objetos y del exceso de ellos en memoria. Por eso arrancar las apps java cuesta tanto.. pero una vez arrancada son tan rapidas como el resto.

Enviado por lasterra en junio 24, 2005 a las 03:53 PM CEST #

Enviar un comentario:

Los comentarios han sido deshabilitados.