מושגים והטמעה של Jetpack Compose
בדיקת ביצועים היא דרך לבדוק ולנטר את הביצועים של האפליקציה. אתם יכולים להריץ בדיקות ביצועים באופן קבוע כדי לנתח ולנפות באגים בבעיות בביצועים, ולוודא שלא הוספתם רגרסיות בשינויים האחרונים.
ב-Android יש שתי ספריות וגישות להשוואה לשוק, שמאפשרות לנתח ולבדוק מצבים שונים באפליקציה: Macrobenchmark ו-Microbenchmark.
Macrobenchmark
ספריית Macrobenchmark מודדת אינטראקציות גדולות יותר של משתמשי קצה, כמו הפעלה, אינטראקציה עם ממשק המשתמש ואנימציות. הספרייה מספקת שליטה ישירה בסביבת הביצועים שאתם בודקים. הוא מאפשר לכם לשלוט בהידור ולהפעיל ולעצור את האפליקציה כדי למדוד ישירות את ההפעלה או הגלילה בפועל של האפליקציה.
ספריית Macrobenchmark מחדירה אירועים ועוקבת אחרי התוצאות באופן חיצוני מאפליקציית בדיקה שנוצרה עם הבדיקות שלכם. לכן, כשכותבים את נקודות ההשוואה, לא קוראים לקוד האפליקציה ישירות, אלא מנווטים בתוך האפליקציה כמשתמשים.
מיקרו-בנצ'מרק
ספריית Microbenchmark מאפשרת לכם לבצע השוואה של קוד האפליקציה ישירות בלולאה. הוא נועד למדוד את עבודת המעבד (CPU) שמעריכה את הביצועים במקרה הטוב ביותר – כמו Just in Time (JIT) מחומם וגישה לדיסק במטמון – שאפשר לראות בלולאה פנימית או בפונקציה חמה ספציפית. הספרייה יכולה למדוד רק את הקוד שאפשר להפעיל ישירות בנפרד.
אלה מקרים שבהם כדאי להשתמש בהשוואה לשוק:
- כשהאפליקציה צריכה לעבד מבנה נתונים מורכב.
- כשהאפליקציה כוללת אלגוריתם ספציפי שדורש הרבה משאבי מחשוב, והיא קוראת לו כמה פעמים במהלך ההפעלה.
אפשר גם למדוד חלקים מממשק המשתמש. לדוגמה, אתם יכולים למדוד את העלות של קישור פריט RecyclerView, כמה זמן לוקח להרחיב פריסה או את הביצועים של שלב הפריסה והמדידה של המחלקה View.
עם זאת, אי אפשר למדוד איך המקרים שנבדקו תורמים לחוויית המשתמש הכוללת. בתרחישים מסוימים, בדיקת ביצועים לא תציין אם אתם משפרים צוואר בקבוק כמו פריימים שהושמטו או זמן הפעלה של האפליקציה. לכן, חשוב קודם לזהות את צווארי הבקבוק האלה באמצעות Android Profiler. אחרי שמוצאים את הקוד שרוצים לבדוק ולשפר, אפשר להריץ את הלולאה של נקודת ההשוואה שוב ושוב כדי ליצור תוצאות עם פחות רעש. כך תוכלו להתמקד בתחום אחד שבו אתם רוצים להשתפר.
ספריית Microbenchmark מדווחת רק על מידע שקשור לאפליקציה, ולא על המערכת באופן כללי. לכן, הכלי הזה הכי מתאים לניתוח הביצועים במצבים שספציפיים לאפליקציה, ולא במצבים שקשורים לבעיות כלליות במערכת.
השוואה בין ספריות של נקודות השוואה
| Macrobenchmark | מיקרו-בנצ'מרק | |
|---|---|---|
| פונקציה | מודדים נקודות כניסה או אינטראקציות ברמה גבוהה, כמו הפעלת פעילות או גלילה ברשימה. | מדידת פונקציות נפרדות. |
| היקף | בדיקה מחוץ לתהליך של האפליקציה המלאה. | בדיקה בתהליך של עבודת המעבד (CPU). |
| מהירות | מהירות איטרציה בינונית. הוא יכול להיות ארוך מדקה. | מהירות איטרציה גבוהה. בדרך כלל פחות מ-10 שניות. |
| מבצע מעקב | התוצאות כוללות עקבות מערכת. | כברירת מחדל, התוצאות כוללות עקבות מערכת מינימליות ותיעוד method. |
מומלץ בשבילכם
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- יצירת פרופיל Baseline {:#creating-profile-rules}
- ספריית JankStats
- סקירה כללית של מדידת ביצועי האפליקציה