מחסניות קריאות שימושיות לזיהוי נקודות חמות של CPU, או קטעים בקוד שלוקח הרבה זמן להריץ. מחסנית הקריאות עוזרת להבין איזה חלק בקוד בוצע ומדוע הוא הופעל.
סקירה כללית של דגימת ה-Callstack
כדי לדגום את מחסנית הקריאות, בוחרים במשימה Find CPU Hotspots (Callstack Sample) בכרטיסייה Home של כלי הפרופיל ב-Android Studio. אחרי שההקלטה מנותחת, מוצגים לכם הרכיבים החזותיים הבאים:
כדי להשלים את ציר הזמן של שימוש במעבד ואינטראקציות, בקטע 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 משורת הפקודה.