השוואה בין ביצועי האפליקציה לבין ביצועים של אפליקציות אחרות (צפיות)

מושגים ויישום ב-Jetpack Compose

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

ב-Android יש שתי ספריות של מדדי השוואה ושתי גישות לניתוח ולבדיקה של מצבים שונים באפליקציה: Macrobenchmark ו-Microbenchmark.

Macrobenchmark

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

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

מיקרו-בנצ'מרק

ספריית Microbenchmark מאפשרת להשוות בין ביצועי קוד האפליקציה ישירות בלולאה. הבדיקה הזו נועדה למדוד את העבודה של יחידת העיבוד המרכזית (CPU) כדי להעריך את הביצועים במקרה הטוב ביותר – למשל, גישה לדיסק במטמון ו-Just in Time (JIT) אחרי חימום – שאפשר לראות בלולאה פנימית או בפונקציה ספציפית שמופעלת לעיתים קרובות. הספרייה יכולה למדוד רק את הקוד שאפשר להפעיל ישירות בבידוד.

אלה דוגמאות טובות למקרים שבהם כדאי להשתמש בהשוואה לשוק:

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

אפשר גם למדוד חלקים בממשק המשתמש. לדוגמה, אפשר למדוד את העלות של RecyclerView item binding, את משך הזמן שלוקח להגדיל את הפריסה או את הביצועים של שלב הפריסה והמדידה של המחלקה View.

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

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

השוואה לספריית נקודות השוואה

Macrobenchmark מיקרו-בנצ'מרק
פונקציה מדידה של נקודות כניסה או אינטראקציות ברמה גבוהה, כמו הפעלה של פעילות או גלילה ברשימה. למדוד פונקציות ספציפיות.
היקף בדיקה מחוץ לתהליך של אפליקציה מלאה. בדיקה בתהליך של עבודת המעבד.
מהירות מהירות בינונית של איטרציות. הוא יכול להימשך יותר מדקה. מהירות גבוהה של חזרה על פעולות. לרוב פחות מ-10 שניות.
מבצע מעקב התוצאות כוללות עקבות של המערכת. התוצאות כוללות כברירת מחדל מעקב מערכת מינימלי ומעקב שיטה.