מאפייני השימוש בזיכרון של אפליקציה הם היבט בסיסי בביצועים שלה. אפשר להשתמש בSystem Profiler כדי לנתח את המאפיינים האלה על ידי בדיקת המידע הזמין של מונה ה-GPU.
מכשירי Adreno
במכשירי Adreno, מתחילים בסימון פרק זמן שתואם לפריים יחיד של GPU, כפי שמתואר במאמר הערכת זמני העיבוד של פריים במעבד וב-GPU. כדי להעריך בצורה מדויקת יותר את השימוש בזיכרון, מומלץ להשתמש בטכניקה שמתוארת בדף הזה, שכוללת שימוש במדד GPU % Utilization או במדד דומה למעקב אחר גבולות זמן רינדור הפריים. הסיבה לכך היא שכל המדדים משתמשים באותה טכניקת תזמון, ולכן מאפשרים הערכות מדויקות יותר של השימוש בזיכרון (לעומת שימוש בגבולות זמן רינדור הפריים שנגזרים מפרוסות ה-GPU, שהנתונים שלהן נאספים בנפרד מנתוני המדד).
קריאה/כתיבה של סה"כ
אחרי שמסמנים פריים יחיד בכלי ליצירת פרופילים, מתחילים בבדיקת המונים Read Total (Bytes/sec) ו-Write Total (Bytes/sec). המונים האלה מספקים תמונה טובה של כמות הנתונים שעוברים באפיק הזיכרון במהלך פריים יחיד. כדאי לצמצם ככל האפשר את כמות הנתונים שאתם שולחים דרך האפיק, כי רוחב פס של הזיכרון הוא מקור משמעותי להתרוקנות הסוללה במכשירים ניידים.
אפשר גם לבדוק את מוני הנתונים Vertex Memory Read (Bytes/Second) ו-Texture Memory Read (Bytes/Second) כדי לקבוע את החלק מרוחב הפס שמשמש לנתוני קודקודים וטקסטורות.
מה נחשב לערך 'טוב' תלוי בסוגי עומסי העבודה באפליקציה. לדוגמה, באפליקציות דו-ממדיות יכול להיות שימוש ברוחב פס גדול יחסית (~2+GB/s) של קריאת זיכרון טקסטורה, אבל רוחב הפס של זיכרון הקודקודים יכול להיות מינימלי מאוד (~50MB/s). פרטים נוספים זמינים במסמכי התיעוד בנושא ניתוח רוחב פס של זיכרון קודקודים וניתוח השימוש ברוחב פס של זיכרון טקסטורה.
אחזור דוכנים
כדאי לבדוק את המונים % Vertex Fetch Stall, % Texture Fetch Stall ו-% Stall on System Memory, כי הם יתנו לכם רמזים לגבי ביצועי הזיכרון הכוללים של האפליקציה. אם הערכים גבוהים מ-5% בערך, יכול להיות שהאפליקציה לא מסדרת את הנתונים בזיכרון בצורה יעילה, או שהיא ניגשת לנתונים בצורה יעילה כדי לנצל את היתרונות של המטמון. במאמרים ניתוח של רוחב הפס של הזיכרון ב-Vertex וניתוח של השימוש ברוחב הפס של הזיכרון בטקסטורה מוסבר איך לשפר את השימוש בזיכרון עבור סוגי הנכסים האלה.
מכשירי מאלי
במכשירי Mali, מתחילים בסימון תקופת זמן שתואמת לפריים יחיד של GPU, כפי שמתואר במאמר הערכת זמני העיבוד של פריים במעבד ובמעבד הגרפי. כדי להעריך בצורה מדויקת יותר את השימוש בזיכרון, מומלץ להשתמש בטכניקה שמתוארת בדף הזה, שכוללת שימוש במדד GPU % Utilization או במדד דומה למעקב אחר גבולות זמן רינדור הפריים. הסיבה לכך היא שכל המדדים משתמשים באותה טכניקת תזמון, ולכן מאפשרים הערכות מדויקות יותר של השימוש בזיכרון (לעומת שימוש בגבולות זמן רינדור הפריים שנגזרים מפרוסות ה-GPU, שהנתונים שלהן נאספים בנפרד מנתוני המדד).
סך כל התוצאות החיצוניות
אחרי שמסמנים פריים יחיד בSystem Profiler, מתחילים בבדיקת מוני Output External Read bytes ו-Output External Write bytes. המונים האלה מספקים תמונה טובה של כמות הנתונים שעוברים באפיק הזיכרון במהלך פריים אחד. כדאי לצמצם ככל האפשר את כמות הנתונים שאתם שולחים דרך האפיק, כי רוחב פס הזיכרון הוא מקור משמעותי לניצול הסוללה במכשירים ניידים.
קלט של סה"כ פנימיים
יש גם מוני נתונים שמספקים מידע על מטמון הנתונים עצמו. המדדים שמעניינים אתכם הם 'מחזורי השהיה של קלט פנימי [קריאה|כתיבה]'. ערכים גבוהים יותר במדדים האלה מצביעים על כך שהמטמון פועל בצורה תקינה, אבל יש יותר מדי בקשות קריאה, וכתוצאה מכך קוד ההצללה מושהה בהמתנה לגישה לזיכרון.
אחזור דוכנים
המדדים הבאים שמומלץ לבדוק הם Vertex Prefetcher Stall Cycles ו-Texture Fetch Stall, כי הם יתנו לכם רמזים לגבי ביצועי הזיכרון הכוללים של האפליקציה. אם אתם רואים ערכים גבוהים מ-5%, זה אומר שאתם לא מסדרים את הנתונים שלנו בזיכרון בצורה יעילה, או שאתם לא ניגשים לנתונים שלנו בצורה יעילה כדי לנצל את היתרונות של הזיכרון הזמני (cache). כדי לקבל פרטים על שיפור השימוש בזיכרון עבור סוגי הנכסים האלה, אפשר לעיין במאמרים בנושא ניתוח רוחב הפס של הזיכרון [Vertex|Texture].