תיעוד עקבות

כדי להתחיל לתעד מעקב, צריך לבחור הגדרת הקלטה מאחד מהתפריטים הנפתחים שמעל או מתחת ל-CPU Profiler, ולוחצים על Record (הקלטה).

איור 1. הכלי לניתוח ביצועי ה-CPU מציג את הסטטוס, משך ההקלטה וסוג ההקלטה.

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

איור 2. הכלי לניתוח ביצועי ה-CPU לאחר צילום של מעקב method.

  1. הטווח שנבחר: קובע את החלק מתוך הזמן המוקלט לבדוק בחלונית המעקב. כשמקליטים מעקב בפעם הראשונה, הכלי לניתוח ביצועי ה-CPU בוחר אוטומטית את כל משך ההקלטה במעבד בציר הזמן. לבדוק את נתוני המעקב רק בחלק מהזמן המתועד טווח, גוררים את הקצוות של האזור המודגש.
  2. הקטע 'אינטראקציה': מציג את האינטראקציות של המשתמשים ואת מחזור החיים של האפליקציה אירועים בציר זמן.
  3. הקטע 'שרשורים': מציג את הפעילות במצב השרשור (למשל ריצה, שינה וכו') ותרשים שיחות (או מעקב אחר תרשים אירועים ב-System Trace) לכל שרשור בציר הזמן.
    • אפשר להשתמש בעכבר ובמקשי קיצור כדי לנווט בציר הזמן.
    • לוחצים לחיצה כפולה על שם השרשור או מקישים על Enter כשהשרשור נבחר כדי להרחיב או לכווץ שרשור.
    • כדי לראות מידע נוסף בחלונית הניתוח, אפשר לבחור שרשור. לוחצים לחיצה ארוכה על מקש Shift או על Ctrl (Command ב-Mac) כדי לבחור מספר שרשורים.
    • צריך לבחור הפעלת method (או אירוע מעקב ב-System Trace) כדי לראות מידע נוסף בחלונית Analysis.
  4. חלונית הניתוח: הצגת נתוני המעקב לפי טווח הזמן והשרשור או הפעלת הדרך שבחרת. בחלונית הזו אפשר לבחור איך להציג וכל דוח קריסות (באמצעות כרטיסיות הניתוח) ואיך מודדים ביצוע זמן (באמצעות התפריט הנפתח להתמצאות).
  5. כרטיסיות בחלונית הניתוח:אתם יכולים לבחור איך להציג את פרטי המעקב. עבור פרטים על כל אפשרות. ראו בדיקת מעקבים.
  6. התפריט התייחסות לשעה: יש לבחור אחת מהאפשרויות הבאות כדי לקבוע איך פרטי התזמון של כל שיחה נמדדים (נתמכים רק בדגימה/מעקב שיטות Java):
    • זמן שעון הקיר: פרטי התזמון מייצגים את הזמן שחלף בפועל בזמן האימון.
    • זמן השרשור: פרטי התזמון מייצגים את הזמן שחלף בפועל פחות חלק מהזמן הזה שבו ה-thread לא צורך מעבד (CPU) במשאבי אנוש. בכל שיחה נתונה, זמן השרשור שלה תמיד קטן מ- או שווה לזמן של שעון הקיר שלו. שימוש בזמן השרשור משפר את להבין כמה שימוש בפועל במעבד (CPU) של שרשור צורך שיטה או פונקציה נתונים.
  7. סינון: סינון של נתוני המעקב לפי פונקציה, שיטה, מחלקה או חבילה שם. לדוגמה, אם רוצים לזהות במהירות נתוני מעקב שקשורים לשיחה ספציפית, הקלידו את השם בחיפוש השדה הזה. בכרטיסייה תרשים מהבהב, מקבצי שיחות שכוללות קריאה, חבילה או מחלקה שתואמים לשאילתת החיפוש מודגש. בכרטיסיות למעלה למטה ומלמטה למעלה, השיחות האלה המקבצים מקבלים עדיפות על פני תוצאות מעקב אחרות. אפשר גם להפעיל את את האפשרויות הבאות, על ידי סימון התיבה המתאימה לצד שדה החיפוש:
    • ביטוי רגולרי: כדי לכלול בחיפוש ביטויים רגולריים, צריך להשתמש בפונקציה הזו כאפשרות.
    • התאמה של אותיות רישיות: אם החיפוש הוא תלוי אותיות רישיות, כדאי להשתמש באפשרות הזו.
טיפ: כשבודקים את ציר הזמן של Threads, יש לפעול לפי השלבים הבאים קיימים מקשי קיצור:
  • התקרבות: לוחצים על W או גוללים על גלגל העכבר תוך כדי לחיצה ארוכה על Ctrl (פקודה ב-Mac).
  • התרחקות: מקישים על S או גוללים אחורה בגלגל העכבר החזקת המקשים Ctrl (ב-Mac).
  • הזזה שמאלה: מקישים על A או גוררים את העכבר ימינה תוך כדי לחיצה על מקש הרווח.
  • הזזה ימינה: מקישים על D או גוררים את העכבר שמאלה תוך כדי לחיצה על מקש הרווח.
  • הרחבה או כיווץ של שרשור: לוחצים לחיצה כפולה על שם השרשור או מקישים על Enter בזמן שהשרשור נבחר.

בחירת הגדרת ההקלטה

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

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

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

  • Trace Java Methods: מכשירים של האפליקציה בזמן הריצה כדי להקליט timestamp בהתחלה ובסוף של כל הפעלת שיטה. חותמות הזמן הן שנאספו והשוו אותם כדי ליצור נתונים למעקב אחר השיטה, כולל תזמון ומידע על השימוש במעבד (CPU).

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

  • דוגמאות C/C++ Functions: תיעוד מעקבים לדוגמה של רכיבי האפליקציה המקוריים של האפליקציה שרשורים. כדי להשתמש בהגדרה הזו, עליך לפרוס את האפליקציה במכשיר מערכת Android בגרסה 8.0 (רמת API 26) ואילך.

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

  • שיחות דרך מערכת מעקב: תיעוד פרטים מדויקים שמאפשרים לכם בדיקת האינטראקציה של האפליקציה עם משאבי המערכת. אפשר לבדוק את התוצאות המדויקות את הזמנים ואת משכי הזמן של מצבי השרשורים, ולראות איפה המעבד (CPU) צווארי בקבוק נמצאים בכל הליבות, ומוסיפים אירועי מעקב מותאמים אישית כדי לנתח. מידע כזה יכול להיות חיוני במהלך פתרון בעיות בביצועים בעיות נפוצות. כדי להשתמש בהגדרה הזו, עליך לפרוס את האפליקציה במכשיר שפועלת בהם מערכת Android בגרסה 7.0 (רמת API 24) ומעלה.

    במהלך השימוש בתצורת המעקב הזו אפשר לסמן באופן חזותי קוד חשוב בציר הזמן של כלי הפרופיל על ידי הוספת אינסטרומנטציה לקוד שלכם. שפת תרגום בקוד C/C++, יש להשתמש ה-API המקורי למעקב שסופק על ידי trace.h. כדי לכוון קוד Java, משתמשים בפונקציה Trace. עבור מידע נוסף, ראה מגדירים את קוד האפליקציה.

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

    במכשירים שמותקנת בהם גרסת Android 9 (רמת API 28) ואילך, אפשר להשתמש אפליקציית מערכת שנקראת System Tracing לתעד את מעקבי המערכת במכשיר.

איך יוצרים, עורכים או צופים בהגדרות של ההקלטה

יוצרים, עורכים וצופים בהגדרות ההקלטה ב-CPU Recordings תיבת הדו-שיח 'הגדרות אישיות', שפותחים על ידי בחירה באפשרות עריכת הגדרות מהתפריט הנפתח של הגדרות ההקלטה בחלק העליון של הכלי לניתוח ביצועי ה-CPU.

כדי לצפות בהגדרות של הגדרת הקלטה קיימת, צריך לבחור אותה בקטע החלונית השמאלית של תיבת הדו-שיח CPU Recordings.

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

  1. לוחצים על הוספה בפינה הימנית העליונה של תיבת הדו-שיח. פעולה זו יוצרת תצורה חדשה עם כמה בהגדרות ברירת המחדל.
  2. נותנים שם להגדרה.
  3. בוחרים טכנולוגיית מעקב.
  4. להגדרות הקלטה שנדגמו, יש לציין את מרווח הדגימה מיקרו-שניות (μs). הערך הזה מייצג את הזמן שבין כל דגימה של מערך השיחות של האפליקציה שלכם. ככל שמרווח הזמן קצר יותר, כך להגיע למגבלת גודל הקובץ עבור הנתונים המתועדים.
  5. מציינים את מגבלת גודל הקובץ, ביחידות מגה-בייט (MB), בשביל הנתונים המתועדים שנכתב במכשיר המחובר. כשמפסיקים להקליט, Android מערכת Studio מנתחת את הנתונים האלה ומציגה אותם בחלון הפרופיל. לכן, אם להגדיל את המגבלה ולתעד כמות גדולה של נתונים, מערכת Android Studio נדרש זמן רב יותר לנתח את הקובץ, ועלולה להיעלם ממנו.

    הערה: אם אתם משתמשים במכשיר מחובר עם Android 8.0 (רמת API 26) אין הגבלה על גודל הקובץ של נתוני המעקב, המערכת מתעלמת ממנו. עם זאת, עדיין צריך לשים לב לכמות הנתונים שהמכשיר אוסף אחרי כל הקלטה – יכול להיות שתיתקלו ב-Android Studio לנתח קובצי מעקב גדולים. לדוגמה, אם אתם מקליטים קטע לדוגמה לנהל מעקב באמצעות מרווח דגימה קצר או מעקב ידני בזמן שהאפליקציה קוראות הרבה שיטות בפרק זמן קצר, אפשר ליצור במהירות קובצי מעקב גדולים.

  6. כדי לאשר את השינויים ולהמשיך לבצע שינויים בהגדרות אחרות, לוחצים על Apply (אישור). כדי לקבל את כל השינויים שהוחלו ולסגור את תיבת הדו-שיח, לוחצים על אישור.

תיעוד הפעילות של המעבד (CPU) באמצעות Debug API

אפשר להשתמש ב-API של Debug כדי לתת לאפליקציה את יכולת להתחיל ולהפסיק את הקלטת הפעילות של המעבד (CPU) בכלי לניתוח ביצועי ה-CPU.

הכלי לניתוח ביצועי ה-CPU מתחיל להקליט כשהאפליקציה מבצעת שיחה startMethodTracing(String tracePath) והכלי לניתוח ביצועי המעבד (CPU) מפסיק להקליט כשהאפליקציה מתקשרת stopMethodTracing() בזמן שמתעד את הפעילות במעבד (CPU) שמופעלת באמצעות ה-API הזה, והכלי ליצירת פרופילים של המעבד (CPU) מציג Debug API כהגדרה הפעילה של ההקלטה של המעבד (CPU).

כדי לשלוט בהקלטה של הפעילות במעבד (CPU) באמצעות ה-API של Debug, צריך לפרוס את האפליקציה שמשויכת למכשיר עם Android מגרסה 8.0 (רמת API 26) ואילך. הקלטה ביוזמת API נתמכת באפליקציות שניתנות לפרופיל, אבל ב-Android Studio כדי להציג את סטטוס ההקלטה בממשק המשתמש, משתמשים של פרופילי פרופיל צריכים אפליקציה שניתנת לניפוי באגים.

חשוב: מיועד לשימוש ב-API של Debug בנפרד מאמצעים אחרים להפעלה ועצירה של הקלטת המעבד (CPU) פעילות, כמו הלחצנים בממשק המשתמש הגרפי של ה-CPU Profiler ההגדרה בתצורת ההקלטה עבור הקלטה אוטומטית באפליקציה בזמן ההפעלה.

בגלל מגבלת הגודל של מאגר הנתונים הזמני, 8MB, השיטה startMethodTracing(String tracePath) ב ממשק ה-API של Debug מתוכנן למרווחי זמן קצרים או לתרחישים קצרים קשה להתחיל/להפסיק את ההקלטה באופן ידני. לתקופות הקלטה ארוכות יותר, מומלץ להשתמש ממשק המשתמש של הכלי ליצירת פרופילים ב-Android Studio.

מידע נוסף זמין במאמר הבא: יוצרים יומני מעקב על ידי הוספת אינסטרומנטציה לאפליקציה.

תיעוד הפעילות של המעבד (CPU) במהלך הפעלת האפליקציה

כדי להתחיל להקליט את הפעילות של המעבד (CPU) באופן אוטומטי במהלך הפעלת האפליקציה, מבצעים את הפעולות הבאות: הבאים:

  1. בוחרים באפשרות הפעלה > עורכים את ההגדרות האישיות.
  2. בכרטיסייה יצירת פרופילים, מסמנים את התיבה לצד התחלת הקלטה של שיטה כלשהי. מעקב במהלך ההפעלה.
  3. בוחרים מהתפריט את ההגדרה של הקלטה במעבד (CPU).
  4. לוחצים על אישור.
  5. עליך לפרוס את האפליקציה במכשיר שמותקנת בו גרסת Android 8.0 (רמת API 26) ומעלה על ידי בחירה באפשרות הפעלה > פרופיל.