Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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.
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 et art::{...}) 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.
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.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Sample the callstack\n\nCallstacks are useful for identifying *CPU hot spots*, or sections of code that\ntake a long time to execute. Callstacks help you understand which part of the\ncode has been executed, and why it was invoked.\n| **Note:** To sample the callstack, you must deploy your app to a device running Android 8.0 (API level 26) or higher.\n\nCallstack sample overview\n-------------------------\n\nTo sample the callstack,\n[select the **Find CPU Hotspots (Callstack Sample)** task](/studio/profile#start-profiling)\nfrom the Android Studio Profiler **Home** tab. After the recording is parsed you\nsee the following visuals:\n\nTo supplement the\n[**CPU Usage** and **Interactions** timelines](/studio/profile/cpu-profiler),\nthe **Threads** section shows frames for every call that your app and the system\nmakes. Here are some tips for navigating the callstack sample:\n\n- Expand the thread of interest and use [keyboard shortcuts](/studio/profile/cpu-profiler#ui-shortcuts) to navigate the stack frames. Click a stack frame to get details about the event and related calls in the **Analysis** pane.\n- To filter to certain types of stack frames, click **Collapse frames** and check the frame types you want to hide. Collapsing frames removes them from both the **Threads** and **Analysis** sections. Depending on your investigation, you might want to collapse frames from the Java virtual machine (for example `android::AndroidRuntime::start` and `art::{...}`), and the system kernel (for example `[kernel.kallsyms]+{offset}`). Usually this corresponds to collapsing frames related to `[kernel.kallsyms]`, `/apex/`, and `/system/*`.\n\nBecause a Java/Kotlin program typically executes through a Java virtual machine,\nwhen Android Studio collects the callstack for a Java/Kotlin program, the\ncallstack usually includes not just the Java/Kotlin code but also the native\ncode required to run the program itself and for the program to talk with the\nsystem and hardware.\n\n- To jump to the source code associated with a stack frame, right-click the frame and click **Jump to source**.\n- To highlight the stack frame associated with an event in the event table, click the event.\n\nFor information about the other visuals, see\n[Record a system trace](/studio/profile/cpu-profiler) and the\n[chart glossary](/studio/profile/chart-glossary/flame-chart).\n\nSample native code using the command line\n-----------------------------------------\n\nInternally, Android Studio uses [simpleperf](/ndk/guides/simpleperf) to trace\nyour app's native code. If you want to specify additional options for\nSimpleperf, such as sampling specific device CPUs or specifying sampling\ndurations at a high accuracy, you can\n[use simpleperf from the command line](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md)."]]