אחזור וניתוח של נתוני פרופילים

בדף הזה מוסבר איך לאחזר עקבות ולהציג אותן בממשק המשתמש של Perfetto.

אחזור עקבות

אחרי שמקליטים פרופיל, העקבות נשמרים במכשיר. כדי לנתח את העקבות האלה, צריך לאחזר אותם.

מיקומי המעקב מסופקים על ידי ProfilingResult.getResultFilePath(). כאן מוסבר איך לצלם פרופיל. אחרי שמקבלים את המיקום של ה-trace, אפשר להעלות אותו לשרת.

בדיקה מקומית: אחזור עקבות באמצעות ADB

שימוש ב-adb כדי לקבל עקבות יכול לעזור בבדיקת הביצועים ובניפוי הבאגים באופן מקומי.

עקבות של מידע שהוסר נשמרים בקבצים במכשיר. נתיב אופייני לפרופיל שמור הוא:

/data/user/0/<app>/files/profiling/profile<tag><datetime>.perfetto-trace

איפה:

  • <app> הוא שם האפליקציה.
  • <datetime> הוא התאריך והשעה שבהם נוצר ה-trace.
  • <tag> הוא התג של הפרטים שהמשתמשים סיפקו שהוגדר באמצעות setTag

אם הפעלתם ושמרתם עקבות לא מצונזרות, משתמשים בפקודה adb הבאה כדי לשלוף אותן מהמכשיר:

adb pull /data/misc/perfetto-traces/profiling/<trace-name>.perfetto-trace-unredacted

הצגת עקבות

אחרי שמאחזרים את הנתונים למחשב, אפשר לצפות בהם בממשק המשתמש של Perfetto.

דוגמה לצנזור של נתוני מעקב
איור 1.: דוגמה לנתוני מעקב עם צנזורה.

במעקב עם צנזורה, הקטע OtherProcesses משלב את כל פעילות המעבד מתהליכים אחרים. שילוב התהליכים שומר על הפרטיות של הפעולות שבוצעו בתהליכים האחרים.

עם זאת, הצגת הפעילות המשולבת של המעבד עדיין מאפשרת לכם לבדוק אם המערכת הייתה עמוסה מדי במהלך ההקלטה. בדיקת פעילות המערכת עוזרת להבין אם האפליקציה הייתה איטית בגלל בעיה פנימית או בגלל שהמערכת הייתה איטית באופן כללי.

בתמונה הבאה מודגשים החלקים העיקריים שמופיעים ב-trace, ומופיע תיאור קצר שלהם:

קטעים של מעקב עם צנזורה
איור 2.: קטעים של מעקב עם צנזורה.
  1. רשימת מעבדים: מוצגים כל המעבדים שזמינים במכשיר.
  2. משימות של המעבד: מראה אילו שרשורים כל מעבד ביצע.
  3. תצוגת תהליכים אחרים: מציגה את משאבי ה-CPU שנצרכים על ידי תהליכים אחרים.
  4. תצוגת תהליך: מציגה את התהליך של האפליקציה.
  5. תצוגת שרשורים: כאן מוצגים השרשורים שפועלים בתהליך ומצבי השרשורים שלהם (Runnable ‏ (R), ‏ Running ‏ (R), ‏ Sleeping ‏ (S), ‏ Uninterruptible Sleep ‏ (D)), שמתאימים ישירות למצבי התהליך ב-Linux.
  6. Trace slices: בקטע הזה מוצגות הערות של Trace שנוספו על ידי מפתחי אפליקציות או על ידי המסגרת. ההערות האלה כוללות חישובים בין Trace.beginSection לבין Trace.endSection.

למידע נוסף על ממשק המשתמש של Perfetto ועל הדמיה של נתוני מעקב, אפשר לעיין במסמכי התיעוד של Perfetto.