En:

La inmensa mayoría de aplicaciones en Android están escritas en el lenguaje de programación Java. Esta necesita de una máquina virtual para funcionar que durante las últimas versiones había sido Dalvik, y que en KitKat ha empezado a sustituirse por ART, una versión mucho mejor.

A raíz de este cambio los chicos de Learn OpenGL han decidido crear diversas apps para probar la velocidad de los distintos idiomas de programación y hasta qué punto aprovechan la velocidad de la CPU para ofrecer un mejor rendimiento.

Comparación de rendimiento entre ART, Dalvik y C en un Nexus 5

No entraremos en detalles técnicos, pero el autor crea un filtro DSP para generar código con mkfilter. Este se implementa de tres formas; uno en C, otra en Java y otra en Java con algunas optimizaciones manuales para aprovechar donde este idioma puede ser mejor. Unas optimizaciones que la mayoría de apps no introducen.

Los resultados se muestran en la siguiente tabla y han sido realizados sobre un Nexus5.

art-dalvik-c

Como vemos, la diferencia entre C y Java (ART y Dalvik) es enorme. Hasta casi 18 veces más lento Java en Dalvik que con apps en C.

También podemos ver como se ha mejorado mucho ART respecto a Dalvik, aunque esta diferencia sería menor si los programadores aprovechasen todas las virtudes de Java, y es que en los resultados optimizados manualmente, no se percibe tanta diferencia entre Dalvik y ART. Esta diferencia de esfuerzo no solo es cuestión de microsegundos, sino de energía utilizada por las CPUs, lo que al final se traduce en batería para nuestros dispositivos.

Unos resultados que demuestran lo increíblemente rápido que es C, el gran trabajo a pesar de ser una beta todavía que se ha hecho con ART y como de lenta es la ya algo antigua Dalvik.

Java, no tan mala elección

El autor, no contento con esto continúa su pequeño experimento y prueba el mismo código pero en un PC con un procesador Intel Core i7 a 2,6GHz, mucho más potente que el Snapdragon800 del Nexus5, pero, y aquí está lo interesante, solo se consiguen resultados 2 o 3 veces más rápido en Java, a pesar de que la CPU sea considerablemente muchísimo más rápida. Parece ser que Java no está tan mal implementado en Android.

Android_Java_

¿Cómo sería Android escrito en C? Muchísimo más rápido, con interfaces que se abren al instante y un rendimiento muchísimo mayor. ¿Por qué no entonces se apuesta por ese idioma? La razón es práctica, al ser un lenguaje de programación de bajo nivel la dificultad para crear apps en C es enorme, crear una simple app de un botón o una pantalla con un mensaje sería un verdadero quebradero de cabeza, ya no digamos apps más complejas.

Y es que al final no todo es velocidad, también el sentido práctico. Aún así una bonita comparativa que queríamos compartir con vosotros y que pone en contexto el porqué de Java como lenguaje preferido de Android.

Más información Learn OpenGL

Mostrar comentarios
Vídeos El Androide Libre
Análisis Xiaomi Mi MIX 2S
Portátil y tablet al mismo tiempo: Yoga 920
Samsung Galaxy S9+, análisis y opinión
Unboxing del Samsung Galaxy S9
Probamos los Sony Xperia XZ2 y XZ2 Compact
Samsung Galaxy S9 y S9 Plus: pre análisis
Inauguración de la tienda de Xiaomi en Barcelona
Análisis Honor 9 Lite
Consejos para hacer mejores fotos con tu móvil cuando salgas de fiesta
Cómo ver cualquier vídeo en la TV con Chromecast y VLC para Android
Ver Madrid en 360º con Samsung Gear 360
Top 25 comandos OK Google
Huawei Mate 10 y Mate 10 Pro: opiniones y toma de contacto
Nuevo Samsung Galaxy J2 2017
Nubia Z17S y Nubia Z17 mini S, características y precio
Manual para hacer compatible la Gear Fit con más dispositivos además de Galaxy y Samsung
Así es el rediseño que tendrá Google+ próximamente