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

Ilya Grigorik
Ilya Grigorik

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

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

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

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

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

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

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

משוב