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