Desfrute de milhões dos mais recentes aplicativos do Android, jogos, músicas, filmes, TV, livros, revistas e muito mais. A qualquer hora, em qualquer lugar, em seus dispositivos. Este aplicativo é Targe
Desfrute de milhões dos mais recentes aplicativos do Android, jogos, músicas, filmes, TV, livros, revistas e muito mais. A qualquer hora, em qualquer lugar, em seus dispositivos.
Este aplicativo é direcionado a desenvolvedores, ou qualquer pessoa curiosa sobre as diferenças de desempenho entre o OpenGL e o Canvas. Especificamente, ele mede o desempenho de desenhar sprites 2D usando explicitamente usando o OpenGL ES 2.0 com um híbrido de Java e C e desenhando sprites 2D usando tela com Java.
Quando terminar de executar um teste, pode ver uma análise de referência do desempenho pressionando o botão traseiro do dispositivo.
É semelhante ao teste do método Sprite por Chris Pruett, mas é atualizado para o OpenGL ES 2.0. Seu teste de método Sprite executa o ES 1.0 desatualizado e é quebrado em Jelly Bean (por causa do buffer de Tripple).
Este aplicativo funciona em todos os dispositivos que suportam o OpenGL ES 2.0.
Isso é livre de anúncios e sem NAG.
Mais detalhes:
Especificamente, este aplicativo mede o desempenho do desenho 2D Sprites explicitamente usando o OpenGL ES 2.0 com um híbrido de Java e C e desenhando sprites 2D usando tela com Java.
Em cada quadro:
A cor do fundo muda levemente, pulsando entre vermelho e branco.
Cada sprite move uma quantidade aleatória (gaussiana). Se o centro de um sprite passar por uma borda da tela, o sprite se move para um local de tela aleatória.
O teste de tela usa um SurfaceView e Canvas.drawbitmap (). Todos os cálculos são feitos em java (usando random.nextgaussian () e random.nextfloat ()) em um flutuador [].
Os testes OpenGL ES 2.0 usam um GlsurfaceView em Java. O cálculo é realizado em C (usando Drand48 () e um equivalente em linha C do algoritmo gaussiano de Java) em um flutuador nativo []. O desenho também é feito em C, usando Gldrawarrays (GL_Points, ...). Os métodos C (NDK) são chamados de todos os quadros de Java através do JNI.
Todos os testes têm a sobrecarga idêntica das operações de perfil em Java.
Estatística:
As informações do FPS são sobre quando os quadros são realmente publicados na tela (tecnicamente, o SurfaceFlinger).
As informações de desenho é sobre o tempo necessário para emitir (e Glflush () + Glfinish (), no teste OpenGL) os comandos de desenho. Ele não conta o tempo para realmente lançar buffers de tela.
A informação Push (somente VBO) é sobre o tempo necessário para empurrar os dados do vértice para o buffer GPU. Isso geralmente será <0,5ms (que arredonde a 0,000s) por quadro. Ao usar o teste não-VBO OpenGL, esse tempo é essencialmente incluído no tempo de desenho. Em aplicações práticas, pode levar mais tempo para impulsionar os dados para a GPU. Este exemplo contém apenas um VBO (ou matriz de vértices) com 2 carros alegóricos por sprite. Aplicações práticas teriam mais dados (como informações de tamanho e textura).
As informações de calc é sobre o tempo necessário para calcular a cor de fundo de um quadro e a nova posição de cada sprite. Quando o JIT é ativado, o tempo de cálculo é comparável entre o teste Java (Canvas) e os testes nativos (Open GL), mas com o JIT desativado, o Java sofre uma penalidade significativa.