OpenJDK es 5 veces más lento que los binarios propietarios de Oracle en ARM/Linux
jueves, marzo 1, 2012 at 11:37AM
Abraham

Hoy he comenzado el día con un cabreo monumental. Mientras desayunaba estaba escuchando el episodio 72 de "The Java Spotlight Podcast", un podcasts corporativo de Oracle sobre Java. Una de las noticias que cubrieron en el era una prueba de rendimiento que otro empleado de Oracle había hecho comparando el rendimiento del OpenJDK y el de los binarios propietarios de Oracle ("Oracle Java SE embedded compiler") en ARM/Linux, comparando tanto el compilador de cliente como el de servidor (c1 y c2).

El resultado más sorprendente es que OpenJDK es de 3 a 5 veces más lento que los binarios propietarios de Oracle en ARM/Linux:

Y encima los empleados de Oracle en el podcast justifican esto:

"… eso no es demasiado sorprendente, ya que crear una buena máquina virtual Java es muy complicado y requiere mucho tiempo para perfeccionarla. Teniendo en cuenta los recursos empleados primero por Sun y después por Oracle no es sorprendente que una versión comercial de Java SE tenga un rendimiento excelente" (en torno al minuto seis de la grabación).

Este fue el momento en el que comenzó mi cabreo. ¿No se supone que este año Oracle está dejando de hacer disponible los binarios propietarios de Java SE de Oracle para Linux porque con Java 7 "no había ningún motivo para emplear los binarios propietarios de Oracle en vez de el OpenJDK". A partir del 24 agosto de este año ninguna distribución de Linux podrá distribuir la versión de Java de Oracle. Y Ubuntu ya lleva haciendo esto dos semanas.

Está claro que, al menos en el caso de ARM, Oracle nos ha engañado. Si hay un claro motivo para usar los binarios propietarios de Oracle en vez de el OpenJDK: hasta 5x más rendimiento. Y debemos creernos el dato; viene del propio Oracle. Es más, ellos se lo apuntan como un "triunfo".

Quizás este benchmark no sea extrapolable a las plataformas x86. Pero el hecho de que hasta hace un par de años OpenJDK sí tenía un claro rendimiento inferior al de los binarios propietarios de Oracle (especialmente en aplicaciones swing, haciéndolas incluso inutilizables) unido a algunos comentarios de gente que afirma que esto sigue siendo así (Carl Quinn y Dick Wall, dos de los chicos de Javaposse, lo afirmaban recientemente en este podcast) me hacen pensar que en plataformas x86 nos vamos a encontrar con algo similar.

Los movimientos de Oracle en la línea de no hacer disponibles sus binarios en Linux, y acortar el EOL de las versiones de Java unidos a este dato no me gustan nada. Oracle podría estar dando los primeros pasos para conseguir llegar a una situación en la que si tú quieres que tu aplicación Java tenga un rendimiento aceptable tengas que pagar una licencia por una versión propietaria. Y si no estoy en lo correcto, debería ser el propio Oracle quien publique los resultados de rendimiento comparando el OpenJDK con sus binarios propietarios para ver cuál es la situación en este caso.

En cualquier caso, lo que hay que apuntarse es un dato claro y objetivo: si vas a correr una aplicación Java en  ARM/Linux, usar los binarios propietarios de Oracle te va a proporcionar hasta 5X más rendimiento respecto a usar el OpenJDK.

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.