ניפוי באגים של תקלות באנימציות

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

עיבוד ב-ChromeOS

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

במקרה כזה, המעבד לא יכול להתחיל לעבד את הפריים הבא, וזה גורם לעוד בעיות. התרחיש הזה מוכר למפתחים של אפליקציות לנייד ל-Android. כשמריצים אפליקציה ב-ChromeOS, ההקשר מורכב עוד יותר.

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

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

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

כלי המעקב אחרי גרפיקה של ARC

ל-ChromeOS יש כלי ליצירת פרופילים שמראה איך המאגרים מסתננים דרך המערכת, מתי מתבצעות החלפות זיכרון, כמה המעבד (CPU) או המעבד הגרפי (GPU) עמוסים ומה האפליקציה עושה בזמן נתון. אפשר לראות את זה בתמונה הבאה:

ממשק המשתמש של הכלי למעקב אחרי גרפיקה ב-ARC, שבו מוצגים ציר הזמן של תהליכי המערכת.
איור 1. ממשק המשתמש של הכלי למעקב אחרי גרפיקה ב-ARC, שבו מוצגים ציר הזמן של תהליכי המערכת.

הגדרת הכלי ליצירת פרופילים

כדי להשתמש בפרופילר, צריך להפעיל גרסה M75 ואילך. לקבלת התוצאות הטובות ביותר, מומלץ להשתמש במכשיר Intel.

לפני שמשתמשים בכלי ליצירת פרופילים, צריך להוסיף לאפליקציה עקבות. מוסיפים את התג Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); לקוד בכל מקום שרוצים לכלול בו מעקב. משתמשים ב-Event שמתחיל בקידומת customTrace. הקידומת לא מופיעה בהודעת המעקב.

כדי להגדיר את כלי הפרופיל, פועלים לפי השלבים הבאים:

  1. מפעילים את מצב פיתוח.
  2. מפעילים את ההגדרות של Chrome ומפעילים את הכלי להצגת מאגרי גרפיקה של ARC.
  3. נווט אל chrome://arc-graphics-tracing.

הרצת הכלי ליצירת פרופילים

  1. בוחרים באפשרות הפסקה בגלל תקלה.
  2. מפעילים את אפליקציית Android.
  3. כשאפליקציית Android פעילה ומוצגת, מקישים על ‎Control+Shift+G.

כשמתרחשת תקלה, מופיע חלון קופץ בדפדפן. משתמשים במקשים W ו-S כדי להגדיל או להקטין את ציר הזמן.