Accueilapplicationbureau d'affaires

Profitez de millions de dernières applications Android, jeux, musique, films, émissions de télévision, livres, magazines et bien plus encore. À tout moment, n'importe où, sur vos appareils.

Cette application est destinée aux développeurs ou à toute personne curieuse de connaître les différences de performances entre OpenGL et Canvas. Plus précisément, il mesure les performances de dessin de sprites 2D explicitement à l'aide d'OpenGL ES 2.0 avec un hybride de Java et de C, et de dessin de sprites 2D à l'aide de Canvas avec Java.

Lorsque vous avez terminé d'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 à Sprite Method Test de 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 interrompu sur Jelly Bean (en raison d'une triple mise en mémoire tampon).

Cette application fonctionne sur tous les appareils prenant en charge OpenGL ES 2.0.

C'est sans publicité et sans harcèlement.

Plus de détails :

Plus précisément, cette application mesure les performances de dessin de sprites 2D explicitement à l'aide d'OpenGL ES 2.0 avec un hybride de Java et de C, et de dessin de sprites 2D à l'aide de Canvas avec Java.

Sur chaque image :

La couleur d’arrière-plan change légèrement, oscillant entre le rouge et le blanc.

Chaque sprite se déplace d'une quantité aléatoire (gaussienne). Si le centre d'un sprite dépasse un bord de l'écran, le sprite se déplace vers un emplacement aléatoire de l'écran.

Le test Canvas utilise SurfaceView et Canvas.drawBitmap(). Tous les calculs sont effectués en Java (en utilisant Random.nextGaussian() et Random.nextFloat()) sur un float[].

Les tests OpenGL ES 2.0 utilisent un GLSurfaceView en Java. Le calcul est effectué en C (en utilisant drand48() et un équivalent C en ligne de l'algorithme gaussien de Java) sur un float[]. Le dessin se fait également en C, en utilisant glDrawArrays(GL_POINTS, ...). Les méthodes C (NDK) sont appelées à chaque image depuis Java via JNI.

Tous les tests ont la même surcharge que les opérations de profilage en Java.

Statistiques:

Les informations FPS concernent le moment où les images sont réellement affichées à l'écran (techniquement, le SurfaceFlinger).

Les informations Draw concernent le temps nécessaire pour émettre (et glFlush() + glFinish(), dans le test OpenGL) les commandes de dessin. Il ne compte pas le temps nécessaire pour retourner les tampons d'écran.

Les informations Push (VBO uniquement) concernent le temps nécessaire pour transmettre les données de sommet vers le tampon GPU. Ce sera souvent < 0,5 ms (ce qui est arrondi à 0,000 s) par image. Lors de l’utilisation du test OpenGL non-VBO, ce temps est essentiellement inclus dans le temps d’affichage. Dans les applications pratiques, le transfert des données vers le GPU peut prendre plus de temps. Cet exemple contient un seul VBO (ou tableau Vertex) avec 2 flotteurs par sprite. Les applications pratiques auraient plus de données (telles que des informations sur la taille et la texture).

Les informations Calc concernent 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 (Canvas) et les tests natifs (Open GL), mais avec JIT désactivé, Java subit une pénalité importante.

Quoi de neuf dans la dernière version 1.0.0

Dernière mise à jour le 4 octobre 2015 Version 1.0.0
Téléchargé sur Google Play

En savoir plus

Les utilisateurs ont également consulté

Voir tout

Cela pourrait vous intéresser

Voir tout

Plus de jeux similaires

Voir tout

Plus de jeux de niveau

Voir tout