מצב ביצועים קבוע

תאריך הפרסום: Android 11 (רמת API ‏30)

מכשירי Android יכולים לשנות את התזמון באופן דינמי בהתאם לעומס המערכת. ההתנהגות הזו טובה לחיסכון בצריכת החשמל במהלך השימוש, אבל היא עלולה להקשות על קבלת נתוני ביצועים מהימנים. אם אתם מנסים לקבוע כמה מהר קטע קוד יכול לפעול כדי למנוע רגרסיה, או אם האופטימיזציה ניתנת לחזרה, התוצאות לא יהיו מהימנות אם לא תבדקו אותן במהירויות שעון קבועות. עם שעונים קבועים, אפשר לבצע בדיקות A/B מדויקות של הביצועים בלי ששינויים בתדר של יחידת העיבוד המרכזית (CPU) יהוו גורם.

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

ניתן להפעיל אופטימיזציית ביצועים קבועה באמצעות פקודת adb הבאה:

adb shell cmd power set-fixed-performance-mode-enabled [true|false]

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

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