השוואה לשוק

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

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

Macrobenchmark

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

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

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

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

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

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

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

השוואה בין ספריות של מדדי ביצועים

Macrobenchmark מיקרו-בנצ'מרק
גרסת ממשק API 23 ואילך 14 ומעלה
פעולה מדידת נקודות כניסה או אינטראקציות ברמה גבוהה, כמו הפעלת פעילות או גלילה ברשימה. מדידת פונקציות נפרדות.
היקף בדיקה מחוץ לתהליך של האפליקציה המלאה. בדיקה בזמן אמת של עבודה של מעבד (CPU).
מהירות מהירות איטרציה בינונית. הוא יכול להימשך יותר מדקה. מהירות איטרציה מהירה. בדרך כלל פחות מ-10 שניות.
מבצע מעקב התוצאות כוללות עקבות של יצירת פרופילים. דגימה של שיטות וניטור שלהן (אופציונלי).