גורמים רבים תורמים לביצועים של דפי אינטרנט. ציוני הביצועים של Lighthouse נוטים להשתנות כתוצאה מההשתנות המובנית בטכנולוגיות האינטרנט והרשת, גם אם לא בוצע שינוי בדף.
מקורות של שונות
השונות במדידת הביצועים נוצרת באמצעות מספר ערוצים עם רמות השפעה שונות. הטבלה הבאה מכילה כמה מקורות נפוצים לשונות של מדדים, ההשפעה הטיפוסית שלהם על התוצאות וההיקף שבו סביר להניח שהם יתרחשו בסביבות שונות.
מקור | השפעה | משתמש קצה טיפוסי | PageSpeed Insights | שיעור Lab מבוקר |
---|---|---|---|---|
א-דטרמיניזם בדף | גבוהה | סבירות | סבירות | סבירות |
שונות של רשת מקומית | גבוהה | סבירות | לא סביר | לא סביר |
שונות רשת ברמה 1 | אמצעי הגעה לאתר | אפשרי | אפשרי | אפשרי |
שונות של שרת אינטרנט | נמוך | סבירות | סבירות | סבירות |
שונות של חומרה של לקוח | גבוהה | סבירות | לא סביר | לא סביר |
תחרות על משאב לקוח | גבוהה | סבירות | אפשרי | לא סביר |
אי-דטרמיניזם בדפדפן | אמצעי הגעה לאתר | ברור | ברור | ברור |
בהמשך מופיעים תיאורים מפורטים יותר של מקורות השונות וההשפעה שלהם על השילובים הכי צפויים של זמן ריצה וסביבה ב-Lighthouse. אפשר להשתמש בגישות של ויסות נתונים וסימולציות של ויסות נתונים (throttle) בכל אחת משלוש הסביבות האלה, אבל משתמש הקצה הטיפוסי משתמש בסימולציה של ויסות נתונים.
נו-דטרמיניזם של הדף
דפים יכולים להכיל לוגיקה שאינה מוחלטת שמשנה את הדרך שבה משתמש חווה בדף, כלומר בדיקת A/B שמשנה את הפריסה והנכסים שנטענו, או חוויית מודעה שונה על סמך ההתקדמות בקמפיין. זהו מקור לשונות, באופן מכוון ובלתי ניתן להסרה. אם הדף משתנה באופן שפוגע בביצועים, מערכת Lighthouse אמורה לזהות את המקרה. ההקלה היחידה כאן היא מצד בעל האתר כדי לוודא שאותה גרסת הדף בדיוק נבדקת בין הפעלות שונות.
שונות ברשת מקומית
ברשתות מקומיות יש שונות מהותית עקב אובדן מנות, תעדוף משתנה של תעבורת נתונים ועומס ברשת עד לרגע האחרון. משתמשים עם נתבים זולים ומכשירים רבים עם רוחב פס מוגבל הם בדרך כלל פגיעים ביותר לכך. מחילים ויסות נתונים (throttle) כדי לצמצם את ההשפעות האלה באופן חלקי, באמצעות החלת זמן אחזור מינימלי ותפוקה מקסימלית של הבקשות לצורך אנונימיזציה של ניסיונות חוזרים. כדי לצמצם את ההשפעה של ויסות נתונים מדמה, אפשר להפעיל מחדש את הפעילות ברשת בעצמו.
שונות רשת ברמה 1
חיבורים בין רשתות הם בדרך כלל יציבים מאוד ויש להם השפעה מינימלית, אבל בבקשות בין מיקומים גיאוגרפיים, כלומר מדידת הביצועים של אתר סיני מארה"ב, ניתן להתחיל לקבל זמן אחזור גבוה מבקשות ברשת ברמה 1. ויסות הנתונים יושם באופן חלקי, באמצעות ויסות נתונים ברשת. כדי לצמצם את ההשפעה של ויסות נתונים מדמה, אפשר להפעיל מחדש את הפעילות ברשת בעצמו.
שונות של שרת האינטרנט
לשרתי האינטרנט יש טעינה משתנה והם לא תמיד מגיבים באותו זמן. אתרים עם תשתית אירוח משותפת בדרך כלל פגיעים יותר לכך, כי יש בהם פחות תנועה. ויסות הנתונים (throttle) שהוחל מסתיר באופן חלקי את ההשפעות האלה באמצעות החלת זמן אחזור מינימלי של בקשות בויסות הרשת. ויסות נתונים מדומה רגיש להשפעה הזו, אבל ההשפעה הכוללת בדרך כלל נמוכה בהשוואה לשונות אחרת ברשת.
שונות החומרה של הלקוח
החומרה שבה נטען דף האינטרנט יכולה להשפיע מאוד על הביצועים. ויסות נתונים מיושם לא יכול לעשות הרבה כדי לצמצם את הבעיה. Simulated ויסות נתונים (throttle) חלקי מצמצם את הבעיה הזו באמצעות הגבלת זמן הביצוע התיאורטי של משימות המעבד (CPU) במהלך הסימולציה.
תחרות על משאבי הלקוח
אפליקציות אחרות שפועלות באותה מכונה בזמן ש-Lighthouse פועל עלולות לגרום למחלוקת לגבי משאבי המעבד (CPU), הזיכרון והרשת. לתוכנות זדוניות, לתוספים לדפדפן ולתוכנות אנטי-וירוס יש השפעות חזקות במיוחד על הביצועים באינטרנט. גם סביבות של שרתים מרובי דיירים (multi-tenant) (כמו Travis , AWS וכו') עלולות לסבול מהבעיות האלה. הרצה של כמה מופעים של Lighthouse בו-זמנית, בדרך כלל מעוותת את התוצאות בגלל הבעיה הזו. ויסות נתונים מיושם עלול להיות רגיש לבעיה הזו. בעזרת סימולציה של ויסות נתונים (throttle) חלקי, תוכלו להפעיל מחדש את הפעילות ברשת בעצמה ולהגביל את הביצוע של המעבד (CPU).
אי-דטרמיניזם בדפדפן
יש שונות מהותית בביצוע המשימות בדפדפנים, שמשפיעה על האופן שבו דפי האינטרנט נטענים. זה בלתי נמנע כאשר מפעילים ויסות נתונים (throttle), מאחר שבסופו של דבר הם פשוט מדווחים על כל מה שנצפה על ידי הדפדפן. ויסות נתונים המדמה יכול לצמצם באופן חלקי את האפקט הזה באמצעות הדמיה של הביצוע בעצמו, תוך שימוש חוזר בזמני הביצוע של המשימות מהדפדפן בלבד באומדנים.
ההשפעה של אסטרטגיות ויסות
בטבלה הבאה מפורטים כמה מקורות נפוצים לשונות של מדדים, ההשפעה הטיפוסית שלהם על התוצאות והמידה שבה אסטרטגיות שונות של הגבלת רוחב פס של Lighthouse יכולות לצמצם את ההשפעה שלהן. אפשר לקרוא מידע נוסף על אסטרטגיות ויסות נתונים (throttle) שונות במסמכי התיעוד בנושא ויסות נתונים.
מקור | השפעה | הדמיה של ויסות נתונים | ויסות נתונים הוחל | ללא הגבלת רוחב פס |
---|---|---|---|---|
א-דטרמיניזם בדף | גבוהה | ללא מיגרציה | ללא מיגרציה | ללא מיגרציה |
שונות של רשת מקומית | גבוהה | שינויים | הועבר באופן חלקי | ללא מיגרציה |
שונות רשת ברמה 1 | אמצעי הגעה לאתר | שינויים | הועבר באופן חלקי | ללא מיגרציה |
שונות של שרת אינטרנט | נמוך | ללא מיגרציה | הועבר באופן חלקי | ללא מיגרציה |
שונות של חומרה של לקוח | גבוהה | הועבר באופן חלקי | ללא מיגרציה | ללא מיגרציה |
תחרות על משאב לקוח | גבוהה | הועבר באופן חלקי | ללא מיגרציה | ללא מיגרציה |
אי-דטרמיניזם בדפדפן | אמצעי הגעה לאתר | הועבר באופן חלקי | ללא מיגרציה | ללא מיגרציה |
אסטרטגיות להתמודדות עם שונות
בידוד גורמים חיצוניים
- חשוב לבודד ככל האפשר את השפעת הצד השלישי על הדף שלכם. אף פעם לא כיף להאשים בכישלונות משתנים של מישהו אחר.
- תוכלו לבודד את האי-דטרמיניזם של הקוד שלכם במהלך הבדיקה. אם יש לכם אנימציה שמופיעה באופן אקראי, נתוני הביצועים עלולים להיות אקראיים מדי!
- חשוב לבודד את שרת הבדיקה מפני תנודתיות רבה ככל האפשר ברשת. במקרה של חשש ליציבות, כדאי להשתמש ב-localhost או במכונה באותה רשת בדיוק.
- תוכלו לבודד את סביבת הלקוח מהשפעות חיצוניות כמו תוכנות אנטי-וירוס ותוספים לדפדפן. השתמשו במכשיר ייעודי לבדיקה כשאפשר.
אם למכונה שלכם יש משאבים מוגבלים או שאתם מתקשים ליצור סביבה נקייה, תוכלו להשתמש בסביבת שיעור Lab מתארחת כמו PageSpeed Insights או WebPageTest כדי להריץ את הבדיקות בשבילכם. במצבים של אינטגרציה רציפה (CI), כדאי להשתמש בשרתים ייעודיים כשאפשר. סביבות CI בחינם ומכונות "מתפוצצות" הן בדרך כלל תנודתיות למדי.
הפעלת Lighthouse מספר פעמים
כשיוצרים ספים לכשל, מנטלית או פרוגרמטית, צריך להשתמש בערכים מצטברים כמו החציון, האחוזון ה-90 או אפילו הערך המינימלי, במקום מבחנים בודדים.
הציון החציוני של Lighthouse ב-5 ריצות יציב פי שניים בהשוואה להרצה אחת, וכלים כמו Pwmetrics יכולים להריץ את Lighthouse בשבילכם באופן אוטומטי. השימוש בערך המינימלי הוא גם שיפור גדול לעומת אי-בדיקה כלל, וקל מאוד להטמיע אותו – פשוט מפעילים את Lighthouse עד 5 פעמים עד שהוא עובר!