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

Ilya Grigorik
Ilya Grigorik

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

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

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

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

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

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

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

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

משוב