وتساهم الكثير من العوامل في أداء صفحات الويب. غالبًا ما تتغيّر نتائج أداء Lighthouse بسبب التباين الكامن في تقنيات الويب والشبكات، حتى إذا لم يتم إجراء تغيير على الصفحة.
مصادر التباين
تتم إضافة التباين في قياس الأداء من خلال عدد من القنوات ذات مستويات مختلفة من التأثير. في ما يلي جدول يحتوي على العديد من المصادر الشائعة لتغيّر المقاييس، والتأثير النموذجي لها على النتائج، والنطاق الذي من المحتمل حدوثه في بيئات مختلفة.
المصدر | التأثير | المستخدم النهائي النموذجي | إحصاءات PageSpeed | مختبر مراقَب |
---|---|---|---|---|
عدم حتمية الصفحة | عالٍ | محتمَل | محتمَل | محتمَل |
تغيُّر الشبكة المحلية | عالٍ | محتمَل | مستبعد | مستبعد |
التباين في الشبكة من المستوى الأول | الوسيط | ممكن | محتمل | محتمل |
تقلب خادم الويب | منخفض | محتمَل | محتمَل | محتمَل |
اختلاف أجهزة العميل | عالٍ | محتمَل | مستبعد | مستبعد |
تنافس موارد العملاء | عالٍ | محتمَل | ممكن | مستبعد |
عدم حتمية المتصفّح | الوسيط | بالتأكيد | بالتأكيد | بالتأكيد |
في ما يلي أوصاف أكثر تفصيلاً لمصادر التباين وتأثيرها على المجموعات الأكثر احتمالاً بين وقت تشغيل Lighthouse والبيئة. في حين أنّه يمكن استخدام أساليب التقييد المطبَّقة والمحاكاة المضبوطة في أي من هذه البيئات الثلاث، في حين أنّ المستخدم النهائي النموذجي يستعين بأساليب التقييد المحاكية.
عدم حتمية الصفحة
يمكن أن تحتوي الصفحات على منطق غير مؤكد يغيّر الطريقة التي يختبر بها المستخدم إحدى الصفحات، أي اختبار أ/ب يغيّر التنسيق ومواد العرض التي تم تحميلها، أو تجربة إعلان مختلفة استنادًا إلى تقدم الحملة. هذا مصدر تباين مقصود وغير قابل للإزالة. إذا تغيّرت الصفحة بطريقة تؤثر سلبًا في الأداء، من المفترض أن تكون أداة Lighthouse قادرة على تحديد هذه الحالة. الحل الوحيد هو من جانب مالك الموقع الإلكتروني ضمان اختبار النسخة نفسها من الصفحة بين عمليات تشغيل مختلفة.
تغيُّر الشبكة المحلية
الشبكات المحلية تباينات كامنة في ما يتعلق بفقدان الحزم، وأولويات حركة البيانات المتغيرة، وازدحام الشبكة في اللحظة الأخيرة. عادةً ما يكون المستخدمون الذين لديهم أجهزة توجيه رخيصة والعديد من الأجهزة التي تشترك في نطاق ترددي محدود هم الأكثر عرضة لهذا الأمر. يخفف التقييد المطبَّق من هذه التأثيرات جزئيًا من خلال تطبيق حد أدنى لوقت استجابة الطلب والحد الأقصى من سرعة معالجة البيانات الذي يخفي عمليات إعادة المحاولة الأساسية. يخفف التقييد المحاكاة من هذه التأثيرات عن طريق إعادة تشغيل نشاط الشبكة بذاته.
التباين في الشبكة من المستوى الأول
بشكل عام، تكون الروابط بين الشبكات مستقرة للغاية ولها تأثير ضئيل، ولكن الطلبات على مستوى المواقع الجغرافية (أي عند قياس أداء موقع إلكتروني صيني من الولايات المتحدة، يمكن أن تبدأ في تسجيل درجة عالية من وقت الاستجابة التي تنتج عن قفزات الشبكة من المستوى الأول). يؤدي التقييد المطبَّق إلى إخفاء هذه التأثيرات جزئيًا باستخدام ميزة التقييد. يخفف التقييد المحاكاة من هذه التأثيرات عن طريق إعادة تشغيل نشاط الشبكة بذاته.
اختلاف خادم الويب
تحتوي خوادم الويب على حمل متغيّر ولا تستجيب دائمًا بنفس التأخير. وعادةً ما تكون المواقع ذات عدد الزيارات المنخفض التي لديها بنية أساسية مشتركة للاستضافة أكثر عرضةً لهذا الأمر. يؤدي التقييد المطبَّق إلى إخفاء هذه التأثيرات جزئيًا من خلال تطبيق حد أدنى لوقت استجابة الطلب في تقييد الشبكة. يكون التقييد المحاكاة عرضة لهذا التأثير، لكن التأثير الكلي عادةً ما يكون منخفضًا عند مقارنته بمتغيرات الشبكة الأخرى.
التباين في أجهزة العميل
قد تؤثر الأجهزة التي يتم تحميل صفحة الويب عليها تأثيرًا كبيرًا في الأداء. لا يمكن أن يؤثّر التقييد المطبَّق بشكل كبير للحدّ من هذه المشكلة. ويؤدي التقييد المحاكاة إلى الحدّ من هذه المشكلة جزئيًا من خلال تحديد وقت التنفيذ النظري لمهام وحدة المعالجة المركزية (CPU) أثناء المحاكاة.
التنافس مع موارد العميل
يمكن أن تؤدي التطبيقات الأخرى التي تعمل على نفس الجهاز أثناء تشغيل Lighthouse إلى زيادة في موارد وحدة المعالجة المركزية (CPU) والذاكرة والشبكة. البرامج الضارة وإضافات المتصفح وبرامج مكافحة الفيروسات تؤثر بشكل خاص في أداء الويب. قد تواجه بيئات الخوادم متعددة المستأجرين (مثل Travis أو AWS وما إلى ذلك) هذه المشكلات أيضًا. يؤدي تشغيل مثيلات متعددة من Lighthouse في وقت واحد إلى تشويه النتائج بسبب هذه المشكلة أيضًا. يكون تقييد المحتوى المطبَّق عرضةً لهذه المشكلة. تؤدي عملية التقييد المحاكاة إلى الحدّ من هذه المشكلة جزئيًا من خلال إعادة تشغيل نشاط الشبكة من تلقاء نفسها ووضع حد أقصى لتنفيذ وحدة المعالجة المركزية (CPU).
عدم حتمية المتصفّح
لدى المتصفحات تباينات كامنة في تنفيذها للمهام، مما يؤثر في طريقة تحميل صفحات الويب. هذا أمر لا مفرّ منه بالنسبة إلى التقييد المطبَّق، إذ إنّهم في نهاية اليوم يكونون ببساطة بصدد الإبلاغ عن كل ما رصده المتصفّح. يمكن لعملية التقييد المحاكاة أن تخفّف جزئيًا من هذا التأثير من خلال محاكاة التنفيذ من تلقاء نفسها، مع إعادة استخدام أوقات تنفيذ المهام من المتصفح في تقديرها فقط.
تأثير استراتيجيات التقييد
في ما يلي جدول يحتوي على عدة مصادر شائعة لتغيّر المقاييس، والتأثير النموذجي الذي تُحدثه في النتائج، ومدى قدرة استراتيجيات التقييد المختلفة في Lighthouse على تخفيف تأثيرها. يمكنك الاطّلاع على مزيد من المعلومات حول استراتيجيات التقييد المختلفة في مستندات التقييد.
المصدر | التأثير | محاكاة التقييد | تقييد تدفق البيانات | بدون تقييد |
---|---|---|---|---|
عدم حتمية الصفحة | عالٍ | لا يوجد تقليل | لا يوجد تقليل | لا يوجد تقليل |
تغيُّر الشبكة المحلية | عالٍ | تم التخفيف من حدتها | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل |
التباين في الشبكة من المستوى الأول | الوسيط | تم التخفيف من حدتها | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل |
تقلب خادم الويب | منخفض | لا يوجد تقليل | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل |
اختلاف أجهزة العميل | عالٍ | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل | لا يوجد تقليل |
تنافس موارد العملاء | عالٍ | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل | لا يوجد تقليل |
عدم حتمية المتصفّح | الوسيط | تم التخفيف من حدتها جزئيًا | لا يوجد تقليل | لا يوجد تقليل |
استراتيجيات للتعامل مع التباين
عزل العوامل الخارجية
- اعزل صفحتك عن التأثير التابع للجهات الخارجية قدر الإمكان. ليس من الممتع أبدًا أن نلقي اللوم على إخفاقات شخص آخر.
- اعزل عدم حتمية التعليمة البرمجية أثناء الاختبار. إذا كان لديك رسم متحرك يظهر بشكل عشوائي، فقد تكون أرقام أدائك عشوائية أيضًا!
- اعزل خادم الاختبار عن أكبر قدر ممكن من التقلّبات في الشبكة. استخدِم المضيف المحلي أو أحد الأجهزة على الشبكة نفسها تحديدًا إذا كان هناك أي قلق بشأن الثبات.
- اعزل بيئة العميل عن التأثيرات الخارجية مثل برامج مكافحة الفيروسات وإضافات المتصفح. استخدام جهاز مخصص للاختبار عندما يكون ذلك ممكنًا.
إذا كان جهازك يحتوي على موارد محدودة إلى حد كبير أو كان إنشاء بيئة نظيفة أمرًا صعبًا، يمكنك استخدام بيئة اختبارية مستضافة مثل إحصاءات PageSpeed أو WebPageTest لإجراء الاختبارات نيابةً عنك. في حالات الدمج المستمر، استخدِم خوادم مخصَّصة إن أمكن. عادةً ما تكون بيئات CI المجانية والمثيلات "القابلة للانفجار" متقلبة إلى حد كبير.
تشغيل Lighthouse عدة مرات
عند وضع حدود للفشل، سواء كانت عقلية أو آلية، استخدم قيمًا مجمعة مثل المتوسط أو 90 في المئة أو حتى دقيقة بدلاً من الاختبارات الفردية.
متوسط نتيجة Lighthouse هو 5 نقاط أقل من ثباتها مرة واحدة، ويمكن لأدوات مثل pwmetrics تشغيل Lighthouse نيابة عنك تلقائيًا. ويشكّل استخدام الحدّ الأدنى للقيمة أيضًا تحسُّنًا كبيرًا مقارنةً بعدم الاختبار على الإطلاق وهو سهل الاستخدام إلى حد كبير. ما عليك سوى تشغيل Lighthouse لما يصل إلى 5 مرات إلى أن تجتاز الاختبار.