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

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

אחזור עקבות

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

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

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

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

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

<code>/data/user/0/<var>\<app\></var>/files/profiling/profile_<var>\<tag\></var>_<var>\<datetime\></var>.perfetto-trace</code>

איפה:

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

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

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

הדמיה של עקבות

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

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

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

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

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

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

מידע נוסף על ממשק המשתמש של Perfetto ועל הדמיה של נתוני מעקב זמין במסמכי התיעוד של Perfetto.