Inícioaplicativoescritório comercial

Aproveite milhões dos mais recentes aplicativos, jogos, músicas, filmes, TV, livros, revistas e muito mais para Android. A qualquer hora, em qualquer lugar, em todos os seus dispositivos.

Este aplicativo é direcionado a desenvolvedores ou qualquer pessoa curiosa sobre as diferenças de desempenho entre OpenGL e Canvas. Especificamente, ele mede o desempenho do desenho de sprites 2D explicitamente usando OpenGL ES 2.0 com um híbrido de Java e C, e do desenho de sprites 2D usando Canvas com Java.

Quando terminar de executar um teste, você poderá ver uma análise de benchmark do desempenho pressionando o botão Voltar do dispositivo.

É semelhante ao Sprite Method Test de Chris Pruett, mas é atualizado para OpenGL ES 2.0. Seu Sprite Method Test executa o ES 1.0 desatualizado e está quebrado no Jelly Bean (por causa do buffer triplo).

Este aplicativo funciona em todos os dispositivos compatíveis com OpenGL ES 2.0.

Isso é livre de anúncios e de problemas.

Mais detalhes:

Especificamente, este aplicativo mede o desempenho do desenho de sprites 2D explicitamente usando OpenGL ES 2.0 com um híbrido de Java e C, e do desenho de sprites 2D usando Canvas com Java.

Em cada quadro:

A cor de fundo muda ligeiramente, pulsando entre o vermelho e o branco.

Cada sprite move uma quantidade aleatória (Gaussiana). Se o centro de um sprite ultrapassar uma borda da tela, o sprite se moverá para um local aleatório da tela.

O teste Canvas usa SurfaceView e Canvas.drawBitmap(). Todos os cálculos são feitos em Java (usando Random.nextGaussian() e Random.nextFloat()) em um float[].

Os testes do OpenGL ES 2.0 usam um GLSurfaceView em Java. O cálculo é feito em C (usando drand48() e um equivalente C embutido do algoritmo Gaussiano de Java) em um float nativo[]. O desenho também é feito em C, usando glDrawArrays(GL_POINTS, ...). Os métodos C (NDK) são chamados a cada quadro de Java por meio do JNI.

Todos os testes têm sobrecarga idêntica às operações de criação de perfil em Java.

Estatísticas:

As informações de FPS são sobre quando os quadros são realmente postados na tela (tecnicamente, o SurfaceFlinger).

As informações do Draw são sobre o tempo que leva para emitir (e glFlush() + glFinish(), no teste OpenGL) os comandos de desenho. Não conta o tempo para realmente virar os buffers da tela.

As informações de push (somente VBO) são sobre o tempo que leva para enviar os dados do vértice para o buffer da GPU. Geralmente, isso será <0,5ms (que é arredondado para 0,000s) por quadro. Ao usar o teste OpenGL não VBO, esse tempo é essencialmente incluído no tempo de sorteio. Em aplicações práticas, pode demorar mais para enviar dados para a GPU. Este exemplo contém apenas um VBO (ou array Vertex) com 2 floats por sprite. Aplicações práticas teriam mais dados (como informações de tamanho e textura).

As informações do Calc referem-se ao tempo necessário para calcular a cor de fundo de um quadro e a nova posição de cada sprite. Quando o JIT está habilitado, o tempo de cálculo é comparável entre o teste Java (Canvas) e os testes nativos (Open GL), mas com o JIT desabilitado, o Java sofre uma penalidade significativa.

O que há de novo na versão mais recente 1.0.0

Última atualização em 4 de outubro de 2015 Versão 1.0.0
Enviado para o Google Play

Leia mais

Usuários Também Viram

Ver Tudo

Você Pode Gostar

Ver Tudo

Mais jogos semelhantes

Ver Tudo

Mais jogos de nível

Ver Tudo