כדי להשלים את ציר הזמן של שימוש במעבד ואינטראקציות, בקטע Threads מוצגים פריימים לכל קריאה שהאפליקציה והמערכת מבצעות. כמה טיפים לניתוח הדוגמה של מחסנית הקריאות:
מרחיבים את השרשור הרצוי ומשתמשים במקשי קיצור כדי לנווט בין מסגרות המחסנית. לוחצים על מסגרת מחסנית כדי לקבל פרטים על האירוע ועל השיחות שקשורות אליו בחלונית ניתוח.
כדי לסנן לפי סוגים מסוימים של מסגרות מחסנית, לוחצים על כיווץ מסגרות ומסמנים את סוגי המסגרות שרוצים להסתיר. כשמכווצים פריימים, הם מוסרים גם מהקטעים Threads וגם מהקטע Analysis. בהתאם לבדיקה שלכם, יכול להיות שתרצו לכווץ פריימים ממכונת Java הווירטואלית (לדוגמה android::AndroidRuntime::start ו-art::{...}) ומליבת המערכת (לדוגמה [kernel.kallsyms]+{offset}). בדרך כלל זה מתאים לכיווץ פריימים שקשורים ל-[kernel.kallsyms], ל-/apex/ ול-/system/*.
מכיוון שתוכנית Java/Kotlin מופעלת בדרך כלל דרך מכונה וירטואלית של Java, כש-Android Studio אוסף את מחסנית הקריאות של תוכנית Java/Kotlin, מחסנית הקריאות כוללת בדרך כלל לא רק את קוד Java/Kotlin אלא גם את הקוד המקורי שנדרש להפעלת התוכנית עצמה ולתקשורת של התוכנית עם המערכת והחומרה.
כדי לעבור לקוד המקור שמשויך למסגרת מחסנית, לוחצים לחיצה ימנית על המסגרת ולוחצים על מעבר למקור.
כדי להדגיש את מסגרת המחסנית שמשויכת לאירוע בטבלת האירועים, לוחצים על האירוע.
מבחינה פנימית, Android Studio משתמש ב-simpleperf כדי לעקוב אחרי הקוד המקורי של האפליקציה. אם רוצים לציין אפשרויות נוספות ל-Simpleperf, כמו דגימה של מעבדים ספציפיים במכשיר או ציון משכי דגימה ברמת דיוק גבוהה, אפשר להשתמש ב-Simpleperf משורת הפקודה.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[null,null,["עדכון אחרון: 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)."]]