Profitez des millions des dernières applications Android, jeux, musique, films, télévision, livres, magazines et plus encore. À tout moment, n'importe où, sur vos appareils.
Cette application est destinée aux développeurs, ou à toute personne curieuse des différences de performance entre OpenGL et Canvas. Plus précisément, il mesure les performances du dessin de sprites 2D explicitement à l'aide d'OpenGL ES 2.0 avec un hybride de Java et C, et de dessin des sprites 2D à l'aide de toile avec Java.
Lorsque vous avez terminé exécuter un test, vous pouvez voir une analyse de référence des performances en appuyant sur le bouton de retour de l'appareil.
Il est similaire au test de méthode Sprite par Chris Pruett, mais il est mis à jour pour OpenGL ES 2.0. Son test de méthode Sprite exécute l'ES 1.0 obsolète et est cassé sur la gelée (en raison de la tampon tripple).
Cette application fonctionne sur tous les appareils qui prennent en charge OpenGL ES 2.0.
Ceci est sans publicité et sans harcèlement.
Plus de détails:
Plus précisément, cette application mesure les performances du dessin de sprites 2D explicitement à l'aide d'OpenGL ES 2.0 avec un hybride de Java et C, et de dessin des sprites 2D à l'aide de toile avec Java.
Sur chaque cadre:
La couleur de fond se déplace légèrement, pulsant entre le rouge et le blanc.
Chaque sprite déplace une quantité aléatoire (gaussienne). Si le centre d'un sprite passe sur un bord de l'écran, le sprite se déplace vers un emplacement d'écran aléatoire.
Le test Canvas utilise une surfaceView et Canvas.DrawBitmap (). Tous les calculs sont effectués dans Java (en utilisant Random.NextGaussian () et Random.NextFloat ()) sur un flotteur [].
Les tests OpenGL ES 2.0 utilisent un GLSURFACEVIEW en Java. Le calcul est effectué en C (en utilisant Drand48 () et un équivalent en ligne C de l'algorithme gaussien de Java) sur un flotteur natif []. Le dessin se fait également en C, en utilisant Gldrawarrays (GL_POINTS, ...). Les méthodes C (NDK) sont appelées chaque trame de Java via le JNI.
Tous les tests ont les frais généraux identiques des opérations de profilage en Java.
Statistiques:
Les informations FPS concernent le moment où les trames sont réellement affichées à l'écran (techniquement, le surfaceflinger).
Les informations de dessin concernent le temps nécessaire pour émettre (et glflush () + glfinish (), dans le test OpenGL) les commandes de dessin. Il ne compte pas le temps de retourner réellement les tampons d'écran.
Les informations push (VBO uniquement) concernent le temps nécessaire pour pousser les données du sommet vers le tampon GPU. Ce sera souvent <0,5 ms (qui tourne à 0,000) par cadre. Lorsque vous utilisez le test OpenGL non VBO, cette fois est essentiellement incluse dans le temps de dessin à la place. Dans les applications pratiques, il pourrait prendre plus de temps pour pousser les données au GPU. Cet exemple ne contient qu'un seul VBO (ou tableau de sommet) avec 2 flotteurs par sprite. Les applications pratiques auraient plus de données (telles que la taille et les informations de texture).
Les informations CALC sont sur le temps nécessaire pour calculer la couleur d'arrière-plan d'un cadre et la nouvelle position de chaque sprite. Lorsque JIT est activé, le temps de calcul est comparable entre le test Java (toile) et les tests natifs (Open GL), mais avec JIT handicapé, Java subit une pénalité significative.