L'analyse comparative permet d'inspecter et de surveiller les performances de votre application. Vous pouvez régulièrement exécuter des analyses comparatives pour analyser et déboguer les problèmes de performances et empêcher l'introduction de régressions dans les modifications récentes.
Android propose deux bibliothèques d'analyse comparative aux approches différentes pour analyser et tester différents types de situations dans votre application : Macrobenchmark et Microbenchmark.
Macrobenchmark
La bibliothèque Macrobenchmark mesure des interactions plus larges d'utilisateurs finaux, telles que le démarrage, l'interaction avec l'interface utilisateur et les animations. La bibliothèque fournit un contrôle direct sur l'environnement de performances que vous testez. Elle vous permet de contrôler la compilation, ainsi que de démarrer et d'arrêter votre application pour mesurer directement le démarrage ou le défilement réel de l'application.
La bibliothèque Macrobenchmark injecte des événements et surveille les résultats en externe à partir d'une application de test créée avec vos tests. Par conséquent, lorsque vous écrivez les analyses comparatives, vous n'appelez pas directement le code de votre application, mais vous naviguez plutôt dans votre application en tant qu'utilisateur.
Microbenchmark
La bibliothèque Microbenchmark vous permet de comparer le code d'une application directement dans une boucle. Elle est conçue pour mesurer le travail du processeur qui évalue les performances des meilleurs cas (préparation juste à temps (JIT), accès au disque mis en cache) que vous pourriez rencontrer avec une boucle interne ou une fonction à chaud spécifique. La bibliothèque ne peut mesurer que le code que vous pouvez appeler en isolation.
Si votre application doit traiter une structure de données complexe ou disposer d'un algorithme spécifique gourmand en ressources de calcul, appelé plusieurs fois au cours de l'exécution de l'application, ces cas peuvent constituer de bons exemples d'analyses comparatives. Vous pouvez également mesurer certaines parties de votre UI. Par exemple, vous pouvez mesurer le coût de la liaison d'élément RecyclerView
, le temps nécessaire pour gonfler une mise en page ou le degré d'exigence de la passe de mise en page et de mesure de votre classe View
du point de vue des performances.
Toutefois, vous ne pouvez pas mesurer la contribution des cas analysés à l'expérience utilisateur globale. Dans certains cas, l'analyse comparative ne vous permet pas de déterminer si vous améliorez un goulot d'étranglement, comme les à-coups, ou le temps de démarrage de l'application. C'est pourquoi il est essentiel d'identifier d'abord ces goulots d'étranglement avec le Profileur Android. Une fois que vous avez trouvé le code que vous souhaitez examiner et optimiser, la boucle comparée peut s'exécuter de manière répétée, rapidement et facilement, afin de générer moins de bruit dans les résultats. Vous pouvez ainsi vous concentrer sur un domaine d'amélioration.
La bibliothèque Microbenchmark ne fournit des informations que sur votre application, et non sur le système dans son ensemble. Par conséquent, il est préférable d'analyser les performances des situations spécifiques à l'application, et non celles qui peuvent être liées à des problèmes système globaux.
Comparaison des bibliothèques d'analyse comparative
Macrobenchmark | Microbenchmark | |
---|---|---|
Version de l'API | 23 et versions ultérieures | 14 et versions ultérieures |
Fonction | Mesure les points d'entrée ou les interactions de haut niveau, tels que le lancement d'une activité ou le défilement d'une liste. | Mesure des fonctions individuelles |
Champ d'application | Test de l'application complète hors processus | Test du travail CPU en cours de processus |
Vitesse | Vitesse d'itération moyenne (peut dépasser une minute) | Vitesse d'itération rapide (souvent moins de 10 secondes) |
Traçage | Les résultats incluent des traces de profilage | Échantillonnage et traçage de méthode facultatifs |
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé.
- Créer des profils de référence {:#creating-profile-rules}
- Bibliothèque JankStats
- Présentation de la mesure des performances des applications