Les piles d'appel sont utiles pour identifier les points chauds du processeur, c'est-à-dire les sections de code dont l'exécution prend beaucoup de temps. Les piles d'appel vous aident à comprendre quelle partie du code a été exécutée et la raison de l'appel.
Présentation de l'exemple de pile d'appels
Pour échantillonner la pile d'appels, sélectionnez la tâche Find CPU Hotspots (Callstack Sample) (Identifier les points chauds du processeur (échantillon de pile d'appels)) dans l'onglet Home (Accueil) du profileur Android Studio. Une fois l'enregistrement analysé, les éléments visuels suivants s'affichent :
Pour compléter les chronologies Utilisation du processeur et Interactions, la section Threads affiche les frames pour chaque appel effectué par votre application et le système. Voici quelques conseils pour parcourir l'exemple de pile d'appels :
- Développez le thread qui vous intéresse et utilisez les raccourcis clavier pour parcourir les frames de pile. Cliquez sur un frame de pile pour obtenir des informations sur l'événement et les appels associés dans le volet Analyse.
- Pour filtrer certains types de frames de pile, cliquez sur Réduire les frames et cochez les types de frames que vous souhaitez masquer. Réduire les frames les supprime des sections Threads et Analyse. Selon votre enquête, vous pouvez réduire les frames de la machine virtuelle Java (par exemple,
android::AndroidRuntime::start
etart::{...}
) et du noyau système (par exemple,[kernel.kallsyms]+{offset}
). En général, cela correspond à la réduction des frames liés à[kernel.kallsyms]
,/apex/
et/system/*
.
Étant donné qu'un programme Java/Kotlin s'exécute généralement via une machine virtuelle Java, lorsqu'Android Studio collecte la pile d'appel d'un programme Java/Kotlin, celle-ci inclut généralement non seulement le code Java/Kotlin, mais aussi le code natif nécessaire à l'exécution du programme proprement dit, et pour que celui-ci communique avec le système et le matériel.
- Pour accéder au code source associé à un frame de pile, effectuez un clic droit sur le frame, puis cliquez sur Accéder à la source.
- Pour mettre en évidence le frame de pile associé à un événement dans le tableau des événements, cliquez sur l'événement.
Pour en savoir plus sur les autres éléments visuels, consultez Enregistrer une trace système et le glossaire des graphiques.
Exemple de code natif utilisant la ligne de commande
En interne, Android Studio utilise simpleperf pour tracer le code natif de votre application. Si vous souhaitez spécifier des options supplémentaires pour Simpleperf (par exemple, pour échantillonner des processeurs d'appareil spécifiques ou spécifier la durée des échantillons avec un haut niveau de précision), vous pouvez utiliser simpleperf depuis une ligne de commande.