Iniciosolicitudoficina de negocios

Disfrute de millones de las últimas aplicaciones, juegos, música, películas, TV, libros, revistas y más de Android. En cualquier momento, en cualquier lugar y en todos sus dispositivos.

Esta aplicación está dirigida a desarrolladores o a cualquier persona que tenga curiosidad sobre las diferencias de rendimiento entre OpenGL y Canvas. Específicamente, mide el rendimiento de dibujar sprites 2D explícitamente usando OpenGL ES 2.0 con un híbrido de Java y C, y dibujar sprites 2D usando Canvas con Java.

Cuando haya terminado de ejecutar una prueba, podrá ver un análisis comparativo del rendimiento presionando el botón Atrás del dispositivo.

Es similar a Sprite Method Test de Chris Pruett, pero está actualizado para OpenGL ES 2.0. Su prueba del método Sprite ejecuta el ES 1.0 obsoleto y no funciona en Jelly Bean (debido al triple almacenamiento en búfer).

Esta aplicación funciona en todos los dispositivos compatibles con OpenGL ES 2.0.

Esto no tiene publicidad ni molestias.

Más detalles:

Específicamente, esta aplicación mide el rendimiento de dibujar sprites 2D explícitamente usando OpenGL ES 2.0 con un híbrido de Java y C, y dibujar sprites 2D usando Canvas con Java.

En cada fotograma:

El color de fondo cambia ligeramente, oscilando entre el rojo y el blanco.

Cada objeto se mueve una cantidad aleatoria (gaussiana). Si el centro de un objeto pasa por encima de un borde de la pantalla, el objeto se mueve a una ubicación aleatoria de la pantalla.

La prueba de Canvas utiliza SurfaceView y Canvas.drawBitmap(). Todos los cálculos se realizan en Java (usando Random.nextGaussian() y Random.nextFloat()) en un float[].

Las pruebas de OpenGL ES 2.0 utilizan GLSurfaceView en Java. El cálculo se realiza en C (usando drand48() y un equivalente C en línea del algoritmo gaussiano de Java) en un flotante nativo[]. El dibujo también se realiza en C, usando glDrawArrays(GL_POINTS, ...). Los métodos C (NDK) se llaman en cada cuadro desde Java hasta JNI.

Todas las pruebas tienen la misma sobrecarga que las operaciones de creación de perfiles en Java.

Estadística:

La información de FPS trata sobre cuándo se publican realmente los fotogramas en la pantalla (técnicamente, SurfaceFlinger).

La información de dibujo es sobre el tiempo que lleva emitir (y glFlush() + glFinish(), en la prueba OpenGL) los comandos de dibujo. No cuenta el tiempo para voltear los buffers de pantalla.

La información de inserción (solo VBO) trata sobre el tiempo que lleva enviar los datos del vértice al búfer de la GPU. Suele ser <0,5 ms (que se redondea a 0,000 s) por fotograma. Cuando se utiliza la prueba OpenGL que no es VBO, este tiempo se incluye esencialmente en el tiempo de sorteo. En aplicaciones prácticas, puede llevar más tiempo enviar datos a la GPU. Este ejemplo contiene solo un VBO (o matriz Vertex) con 2 flotantes por objeto. Las aplicaciones prácticas tendrían más datos (como información de tamaño y textura).

La información de Calc es sobre el tiempo que lleva calcular el color de fondo de un cuadro y la nueva posición de cada sprite. Cuando JIT está habilitado, el tiempo de cálculo es comparable entre la prueba Java (Canvas) y las pruebas nativas (Open GL), pero con JIT deshabilitado, Java sufre una penalización significativa.

Novedades de la última versión 1.0.0

Última actualización el 4 de octubre de 2015 Versión 1.0.0
Subido a Google Play

Leer más

Los usuarios también vieron

Ver todo

Te puede interesar

Ver todo

Más juegos similares

Ver todo

Más juegos de niveles

Ver todo