iOS הפכה להיות איטית יותר בגלל האנימציות

ע״י

מאז השקתה של גרסה 7 התלונות על האיטיות של מערכת ההפעלה הפכו להיות תדירות יותר ויותר ונראה כי האשמה היא באנימציות.

 

 

iOS 7 and iPhone 5s Parallax

כשאפל הציגה לראשונה את גרסה 7, בכנס ה- WWDC בשנת 2013 משתמשי האייפון והאייפד וכן קהילת המפתחים לא הצליחו להסתיר את שמחתם לגבי השינוי הדרמטי בעיצוב של מערכת ההפעלה, שזנח את המראה הסקאומורפי שמנסה לחקות אובייקטים מהעולם הפיזי, לטובת מראה נקי יותר שהציג פלטת צבעים שטוחה יותר עליה הוחלט לפצות באמצעות עומק ויזואלי של תפריטי גלילה שקופים ואפקטים ויזואליים שכוללים לא מעט אנימציות. הבעיה היא שריבוי האנימציות והמורכבות שלהן הפכו את השימוש במערכת ההפעלה לאיטי למדי. אפל התייחסה לנושא במהלך שלבי הבטא של גרסה 7, כשהיא מצמצמת באופן משמעותי את משך הזמן של האנימציות לכדי מינימום. פעולה זו שיפרה את המצב אולם עדיין נראה שגרסאות 7 ו- 8 של iOS פועלות באופן איטי יותר מאשר הגרסאות שקדמו לשינוי המשמעותי בעיצוב והממשק. תופעה זו הביאה את המפתח William Van Hecke לחקור את הנושא לעומק ולהשוות בין הגרסאות הישנות יותר של iOS לבין אלו החדשות יותר. השוואה זו נערכה בין מכשיר אייפון 5s המריץ את גרסה 8 לבין מכשיר אייפון 2G שמריץ את גרסה 3.1.3.

Van Hecke גילה שבעת מעבר בין פעולות שונות כמו למשל פתיחת המכשיר מנעילה, או כניסה ויציאה לתפריט המולטי טאסקינג על גרסה 7 ומעלה לוקח למערכת ההפעלה מספר שניות להגיב למחוות ולקלט של האצבעות על המסך. בהשוואה לכך בשימוש במכשיר האייפון 2G שמריץ את גרסה 3.1.3 זיהוי המחוות והקלט של האצבעות היה מהיר הרבה יותר בעת ביצוע פעולות דומות (למעט נושא המולטי טאסקינג שהגיע ל- iOS רק בגרסה 4). כך שבעת פתיחת האייפון 2G ממצב הנעילה מערכת ההפעלה כבר הספיק לזהות את מחוות הניגוב של Van Hecke ולגלול בין מסכי הבית לכאורה לפני שהאנימצית הפתיחה הסתיימה. בהתאם לכך הסברה של Van Hecke היא שעד לגרסה 6, מחוות המולטי טאץ' על המסך נרשמו על ידי מערכת ההפעלה בזמן פעולתן של האנימציות השונות ומערכת ההפעלה אפשרה להפריע למהלך של אותן האנימציות ולפעול בהתאם לקלט, מה שקרוי בעגה המקצועית Interrupt או בעברית – פסיקה.

Van Hecke הציג את הממצאים שלו בסרטון אותו הוא פרסם ביוטיוב וגם ציין שהוא חשף את הבאג בפני אפל, דרך כלי ה- radar שמאפשר למפתחים להציג בפני אפל באגים ובעיות שהם נתקלים עימם בשימוש בגרסאות השונות של iOS או OS X:

הנושא כמובן יצר עניין רב ברשת וגרם ל- Andy Matuschak, מהנדס לשעבר באפל שעבד באופן ישיר על הפיתוח של UIKit, העוסק במראה ואופן הפעולה של iOS להתייחס לנושא. Matuschak גילה ש- iOS מעולם לא אפשרה לבצע פסיקות במהלך ביצוע אנימציות, למעט אנימציית הפתיחה של המכשיר מנעילה דבר שלכשעצמו היה קשה מאוד לביצוע. כך שההסבר הוא לא שינוי ביכולת של מערכת ההפעלה להתייחס לקלט במהלך אנימציות, אלא שלפני גרסה 7 מערכת ההפעלה iOS כללה הרבה פחות אנימציות, כשבנוסף לכך הן היו קצרות יותר. כך שהבעיה היא לא בליבה של מערכת ההפעלה או בהתייחסות שלה לפסיקות בזמן אנימציות, אלא האנימציות עצמן ובעיקר המשך הארוך שלהן.

באופן מעניין אפל התייחסה לנושא מאז שיחרורה של גרסה 7, אם כי לא באופן רשמי. בצעד די שונה ממנהגה הכללי החברה הוסיפה במהלך השנתיים האחרונות אפשרויות בתפריט ההגדרות של iOS, המאפשרות למשתמש לשלוט בשלל נושאים הקשורים למראה ולדרך הפעולה של מערכת ההפעלה בתחום הויזואלי. אפשרויות אלו נמצאות בתפריט ההגדרות–> הגדרות כלליות –> הגדרות נגישות (או Accessibility) והן כוללות:

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

iOS 8 accessebility menu

מבדיקה עולה ששימוש בהגדרות אלו משפר באופן משמעותי לא רק את מהירות התגובה של מערכת ההפעלה, אלא גם דברים אחרים כמו למשל את חיי הסוללה (במקצת) מכיוון שהעומס על המעבד ו/או המעבד הגרפי של המכשיר קטנים וכך גם זמן השימוש הכולל במכשיר (כשהשימוש נעשה במקטעים מהירים) מאחר וזמן הארת המסך קטנה קטן מעט. כמובן שמדובר בפשרה המצריכה לבחור בין מהירות התגובה של המכשיר לבין העיצוב והאנימציות.
בעבר היו לא מעט תלונות לגבי כך שאפקט ה- Parallax מעורר בקרב חלק קטן מהמשתמשים של גרסה 7 ומעלה את מחלת הנסיעה (או Motion sickness) הנגרמת בגלל האופן שבו המוח מגיב על דפוס התנועה הנקלט בחושים השונים, והתלונות הללו הן אלו שגרמו לאפל לאפשר למשתמשים לבטל את האפקטים הויזואליים והאנימציות השונות. כעת נראה שביטול האפקטים הללו עשוי לשפר גם את מהירות הפעולה והתגובה של מערכת ההפעלה, אם כי נראה שמדובר בפיתרון עוקף ואפל צריכה להתייחס לנושא באופן ישיר יותר יבן אם לאפשר למערכת ההפעלה לזהות פסיקות בזמן פעולת האנימציות או לצמצם אותן ואת משך הפעולה שלהן עוד יותר.

 

מקור: iMore
עריכה, תרגום ותוספות: natisho