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

Ilya Grigorik
Ilya Grigorik

תאריך פרסום: 31 במרץ 2014

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

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

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

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

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

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

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

משוב