Rendimiento de la aplicación Java vs C - Gary explica

Autor: John Stephens
Fecha De Creación: 23 Enero 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
Rendimiento de la aplicación Java vs C - Gary explica - Aplicaciones
Rendimiento de la aplicación Java vs C - Gary explica - Aplicaciones

Contenido


Comenzando con el peor puntaje, Android 5.0 de 32 bits, muestra que el código Java corrió un 296% más lento que C, o en otras palabras, 4 veces más lento. Nuevamente, recuerde que la velocidad absoluta no es importante aquí, sino la diferencia en el tiempo que lleva ejecutar el código Java en comparación con el código C, en el mismo dispositivo. Android 4.4 KitKat de 32 bits con su Dalvik JVM es un poco más rápido al 237%. Una vez que se da el salto a Android 6.0 Marshmallow, las cosas comienzan a mejorar dramáticamente, con Android 6.0 de 64 bits que produce la menor diferencia entre Java y C.

La segunda prueba es la prueba de número primo, usando prueba por división. Como se señaló anteriormente, este código usa 64 bitslargo enteros y, por lo tanto, favorecerán los procesadores de 64 bits.


Como se esperaba, los mejores resultados provienen de Android que se ejecuta en procesadores de 64 bits. Para Android 6.0 de 64 bits, la diferencia de velocidad es muy pequeña, solo el 3%. Mientras que para Android 5.0 de 64 bits es del 38%. Esto demuestra las mejoras entre ART en Android 5.0 y el Optimizando compilador utilizado por ART en Android 6.0. Dado que Android 7.0 N todavía es una versión beta de desarrollo, no he mostrado los resultados, sin embargo, generalmente funciona tan bien como Android 6.0 M, si no mejor. Los peores resultados son para las versiones de Android de 32 bits y extrañamente Android 6.0 de 32 bits produce los peores resultados del grupo.

La tercera y última prueba ejecuta una función matemática pesada para un millón de iteraciones. La función hace aritmética de enteros, así como aritmética de coma flotante.


¡Y aquí por primera vez tenemos un resultado en el que Java realmente se ejecuta más rápido que C! Hay dos posibles explicaciones para esto y ambas tienen que ver con la optimización y la Ooptimizandocompilador de ARM. Primero, el Ooptimizando El compilador podría haber producido un código más óptimo para AArch64, con una mejor asignación de registros, etc., que el compilador de C en Android Studio. Un mejor compilador siempre significa un mejor rendimiento. También podría haber una ruta a través del código que el Ooptimizandoel compilador ha calculado que puede optimizarse porque no tiene influencia en el resultado final, pero el compilador de C no ha detectado esta optimización. Sé que este tipo de optimización fue uno de los grandes focos para el Ooptimizandocompilador en Android 6.0. Dado que la función es solo una invención pura de mi parte, podría haber una manera de optimizar el código que omite algunas secciones, pero no lo he visto.La otra razón es que llamar a esta función, incluso un millón de veces, no hace que se ejecute el recolector de basura.

Al igual que con la prueba de primos, esta prueba usa 64 bitslargo enteros, razón por la cual el siguiente mejor puntaje proviene de Android 5.0 de 64 bits. Luego viene Android 6.0 de 32 bits, seguido de Android 5.0 de 32 bits y finalmente Android 4.4 de 32 bits.

Envolver

En general, C es más rápido que Java, sin embargo, la brecha entre los dos se ha reducido drásticamente con el lanzamiento de Android 6.0 Marshmallow de 64 bits. Por supuesto, en el mundo real, la decisión de usar Java o C no es en blanco y negro. Si bien C tiene algunas ventajas, toda la interfaz de usuario de Android, todos los servicios de Android y todas las API de Android están diseñadas para ser llamadas desde Java. C solo se puede usar cuando desea un lienzo de OpenGL en blanco y desea dibujar en ese lienzo sin usar ninguna API de Android.

Sin embargo, si su aplicación tiene que hacer un trabajo pesado, entonces esas partes podrían portarse a C y es posible que vea una mejora de la velocidad, sin embargo, no tanto como alguna vez pudo haber visto.

Una de la tendencia de teléfono inteligente má populare de 2018 fue el teléfono para juego, como el Xiaomi Black hark o el Au ROG Phone. Del mimo modo, e epera que una de la tendencia m...

El primer dipoitivo plegable de amung, el amung Galaxy Fold, preenta una pantalla interna cubierta de plático. Ete plático e tan enible que incluo amung admite que una preión fuerte en ...

Ganando Popularidad