Simpleperf

Android Studio inclut un frontal graphique pour Simpleperf, qui est décrit sur la page Inspecter l'activité du processeur avec le profileur de processeur. La plupart des utilisateurs préfèrent cette méthode à Simpleperf.

Si vous préférez utiliser la ligne de commande, Simpleperf est un outil de profilage de processeur polyvalent qui est inclus dans le NDK pour Mac, Linux et Windows. Il fonctionne au niveau de la ligne de commande.

Pour accéder à la documentation complète, commencez avec le fichier README Simpleperf.

Méthodes et conseils Simpleperf

Si vous faites vos premiers pas avec Simpleperf, voici quelques commandes qui pourraient vous être particulièrement utiles. Pour découvrir d'autres commandes et options, reportez-vous à la documentation de référence sur les commandes et les options Simpleperf.

Identifier les bibliothèques partagées dont l'exécution prend le plus de temps

Vous pouvez exécuter cette commande pour identifier les fichiers .so qui ont le pourcentage de temps d'exécution le plus élevé (en fonction du nombre de cycles processeur). Il s'agit d'une bonne commande à exécuter en premier lorsque vous démarrez votre session d'analyse des performances.

$ simpleperf report --sort dso

Identifier les fonctions dont l'exécution prend le plus de temps

Une fois que vous avez identifié la bibliothèque partagée dont l'exécution prend le plus de temps, vous pouvez exécuter cette commande pour voir le pourcentage de temps passé à exécuter les fonctions de ce fichier .so.

$ simpleperf report --dsos library.so --sort symbol

Identifier le pourcentage de temps passé dans les threads

Le temps d'exécution d'un fichier .so peut être réparti sur plusieurs threads. Vous pouvez exécuter cette commande pour déterminer le pourcentage de temps passé dans chacun d'eux.

$ simpleperf report --sort tid,comm

Identifier le pourcentage de temps passé dans les modules d'objets

Une fois que vous avez identifié les threads sur lesquels la majeure partie du temps d'exécution est passé, vous pouvez utiliser cette commande pour isoler les modules d'objets dont l'exécution prend le plus de temps sur ces threads.

$ simpleperf report --tids threadID --sort dso

Déterminer la relation entre les appels de fonction

Un graphique d'appel fournit une représentation visuelle d'une trace de la pile que Simpleperf enregistre pendant la session de profilage.

Vous pouvez utiliser la commande report -g pour imprimer un graphique d'appel afin d'identifier les fonctions appelées par d'autres fonctions. Cette pratique permet de déterminer si une fonction est lente par elle-même ou en raison de la lenteur d'une ou de plusieurs fonctions qu'elle appelle.

$ simpleperf report -g

Vous pouvez également utiliser le script Python report.py -g pour démarrer un outil interactif qui affiche des fonctions. Vous pouvez cliquer sur chaque fonction pour déterminer combien de temps est consacré à ses enfants.

Profiler des applications créées avec Unity

Si vous profilez une application créée avec Unity, assurez-vous de la compiler avec des symboles de débogage en suivant cette procédure :

  1. Ouvrez le projet Android dans l'éditeur Unity.
  2. Dans la fenêtre Build Settings (Paramètres de compilation) de la plate-forme Android, assurez-vous que l'option Development Build (Build de développement) est cochée.
  3. Cliquez sur Player Settings (Paramètres du lecteur), puis définissez la propriété Stripping Level (Niveau de balayage) sur Disabled (Désactivé).