אופטימיזציה של נתיב העיבוד הקריטי

איליה גריגוריק
איליה גריגוריק

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

  • מספר המשאבים הקריטיים.
  • אורך הנתיב הקריטי.
  • מספר הבייטים הקריטיים.

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

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

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

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

  1. ניתוח ואפיון של הנתיב הקריטי: מספר המשאבים, בייטים ואורך.
  2. לצמצם את מספר המשאבים הקריטיים: להסיר אותם, לדחות את ההורדה שלהם, לסמן אותם כאסינכרוניים וכן הלאה.
  3. אופטימיזציה של מספר הבייטים הקריטיים במטרה לקצר את זמן ההורדה (מספר הפעולות הדו-כיווניות).
  4. לבצע אופטימיזציה של סדר הטעינה של שאר המשאבים הקריטיים: להוריד את כל הנכסים הקריטיים בהקדם האפשרי כדי לקצר את אורך הנתיב הקריטי.

משוב