Inspecter l'activité du processeur avec le Profileur de processeur

L'optimisation de l'utilisation du processeur par votre application présente de nombreux avantages, tels que la possibilité de fournir une expérience utilisateur plus rapide et plus fluide et de préserver l'autonomie de la batterie de l'appareil.

Vous pouvez utiliser le Profileur de processeur pour inspecter en temps réel l'utilisation du processeur et l'activité du thread de votre application lorsque vous interagissez avec celle-ci. Vous pouvez également inspecter les détails des traces de méthode, de fonction et de système enregistrées.

Les informations détaillées que le Profileur de processeur enregistre et affiche dépendent de la configuration d'enregistrement que vous choisissez :

  • Traçage système : capture des détails précis qui vous permettent d'inspecter l'interaction de votre application avec les ressources système.
  • Traces de méthode et de fonctions : pour chaque thread du processus de votre application, vous pouvez identifier les méthodes (Java) ou les fonctions (C/C++) exécutées sur une période donnée. et les ressources de processeur que chaque méthode ou fonction consomme lors de son exécution. Vous pouvez également utiliser les traces de méthode et de fonction pour identifier les appelants et les appelés. Un appelant est une méthode ou une fonction qui invoque une autre méthode ou fonction, tandis qu'un appelé est invoqué par une autre méthode ou fonction. Vous pouvez utiliser ces informations pour déterminer les méthodes ou fonctions responsables qui appellent trop souvent des tâches gourmandes en ressources et afin d'optimiser le code de votre application pour éviter des tâches inutiles.

    Lorsque vous enregistrez des traces de méthode, vous pouvez choisir un enregistrement échantillonné ou instrumenté. Lorsque vous enregistrez des traces de fonction, vous ne pouvez utiliser qu'un enregistrement échantillonné.

Pour en savoir plus sur l'utilisation et le choix de chacune de ces options de trace, consultez Choisir une configuration d'enregistrement.

Aperçu du Profileur de processeur

Pour ouvrir le Profileur de processeur, procédez comme suit :

  1. Sélectionnez View > Tool Windows > Profiler (Vue > Fenêtres d'outil > Profileur) ou cliquez sur Profile (Profil) dans la barre d'outils.

    Si vous y êtes invité par la boîte de dialogue Select Deployment Target (Sélectionner une cible de déploiement), choisissez l'appareil sur lequel déployer votre application à des fins de profilage. Si vous avez connecté un appareil en USB, mais qu'il ne figure pas dans la liste, assurez-vous d'avoir activé le débogage USB.

  2. Cliquez n'importe où dans la chronologie du CPU pour ouvrir le Profileur de processeur.

Lorsque vous ouvrez le Profileur de processeur, il commence immédiatement à afficher l'utilisation du processeur et l'activité des threads de votre application. Vous devriez voir quelque chose de semblable à la Figure 1.

Figure 1 : Chronologies dans le Profileur de processeur.

Comme indiqué sur la Figure 1, la vue par défaut du Profileur de processeur est composée des chronologies suivantes :

  1. Chronologie des événements : affiche les activités de votre application à mesure qu'elles passent d'un état à un autre de leur cycle de vie et indique les interactions des utilisateurs avec l'appareil, y compris les événements de rotation d'écran. Pour savoir comment activer la chronologie des événements sur les appareils équipés d'Android 7.1 (niveau d'API 25) ou version antérieure, consultez Activer le profilage avancé.
  2. Chronologie du processeur : affiche l'utilisation du processeur en temps réel de votre application, sous la forme d'un pourcentage du temps CPU total disponible, et le nombre total de threads utilisés par votre application. La chronologie affiche également l'utilisation du processeur par d'autres processus (tels que les processus système ou d'autres applications). Vous pouvez ainsi la comparer à l'utilisation de votre application. Vous pouvez inspecter l'historique des données d'utilisation du processeur en déplaçant votre souris le long de l'axe horizontal de la chronologie.
  3. Chronologie d'activité des threads : présente chaque thread qui appartient au processus de votre application et indique son activité sur une chronologie à l'aide des couleurs listées ci-dessous. Après avoir enregistré une trace, vous pouvez sélectionner un thread dans cette chronologie pour inspecter ses données dans le volet de trace.
    • Vert : le thread est actif ou prêt à utiliser le processeur. Autrement dit, il est en cours d'exécution ou exécutable.
    • Jaune : le thread est actif, mais il est en attente d'une opération d'E/S (par exemple, E/S disque ou réseau) avant de pouvoir terminer son travail.
    • Gris : le thread est en veille et ne consomme pas de temps CPU. Cela peut se produire lorsque le thread nécessite un accès à une ressource qui n'est pas encore disponible. Soit le thread est mis en veille volontairement, soit le noyau le met en veille jusqu'à ce que la ressource requise soit disponible.

    Le Profileur de processeur indique également l'utilisation du processeur par les threads ajoutés par Android Studio et la plate-forme Android au processus de votre application, tels que JDWP, Profile Saver ,Studio:VMStats, Studio:Perfa et Studio:Heartbeat (les noms exacts affichés dans la chronologie d'activité des threads peuvent varier). Android Studio présente ces données afin que vous puissiez identifier les cas où l'activité des threads et l'utilisation du processeur sont en réalité causées par le code de votre application.