عوامل زیادی در عملکرد صفحات وب نقش دارند. امتیاز عملکرد Lighthouse به دلیل تنوع ذاتی در فناوری های وب و شبکه تغییر می کند، حتی اگر تغییری در صفحه ایجاد نشده باشد.
منابع تغییرپذیری
تغییرپذیری در اندازهگیری عملکرد از طریق تعدادی کانال با سطوح تأثیر متفاوت معرفی میشود. در زیر جدولی حاوی چندین منبع متداول تغییرپذیری متریک، تأثیر معمولی که بر نتایج میگذارند و میزان احتمال وقوع آنها در محیطهای مختلف وجود دارد.
منبع | تأثیر | کاربر نهایی معمولی | PageSpeed Insights | آزمایشگاه کنترل شده |
---|---|---|---|---|
عدم جبر صفحه | بالا | احتمال دارد | احتمال دارد | احتمال دارد |
تنوع شبکه محلی | بالا | احتمال دارد | بعید | بعید |
تنوع شبکه Tier-1 | متوسط | ممکن است | ممکن است | ممکن است |
تنوع وب سرور | کم | احتمال دارد | احتمال دارد | احتمال دارد |
تنوع سخت افزاری مشتری | بالا | احتمال دارد | بعید | بعید |
مناقشه منابع مشتری | بالا | احتمال دارد | ممکن است | بعید |
عدم قطعیت مرورگر | متوسط | مسلم - قطعی | مسلم - قطعی | مسلم - قطعی |
در زیر توضیحات دقیق تری از منابع واریانس و تأثیر آنها بر محتمل ترین ترکیبات محیط اجرا + Lighthouse ارائه شده است. در حالی که رویکردهای throttling اعمال شده و throttling شبیه سازی شده را می توان در هر یک از این سه محیط استفاده کرد، کاربر نهایی معمولی از throttling شبیه سازی شده استفاده می کند.
صفحه غیر جبرگرایی
صفحات می توانند حاوی منطق غیر قطعی باشند که نحوه تجربه کاربر از یک صفحه را تغییر می دهد، به عنوان مثال یک تست A/B که چیدمان و دارایی های بارگذاری شده را تغییر می دهد یا یک تجربه تبلیغاتی متفاوت را بر اساس پیشرفت کمپین تغییر می دهد. این یک منبع واریانس عمدی و غیر قابل حذف است. اگر صفحه به گونه ای تغییر کند که به عملکرد آسیب برساند، Lighthouse باید بتواند این مورد را شناسایی کند. تنها راه کاهش در اینجا از طرف مالک سایت در حصول اطمینان از اینکه دقیقاً همان نسخه صفحه بین اجراهای مختلف آزمایش می شود، است.
تغییرپذیری شبکه محلی
شبکه های محلی دارای تنوع ذاتی از دست دادن بسته ها، اولویت بندی ترافیک متغیر و تراکم شبکه در آخرین مایل هستند. معمولاً کاربرانی که روترهای ارزان قیمت دارند و بسیاری از دستگاههایی که پهنای باند محدودی را به اشتراک میگذارند، بیشتر مستعد این امر هستند. throttling اعمال شده با اعمال حداقل تأخیر درخواست و حداکثر توان عملیاتی که تکرارهای اساسی را پنهان می کند، تا حدی این اثرات را کاهش می دهد. throttling شبیه سازی شده این اثرات را با پخش مجدد فعالیت شبکه به تنهایی کاهش می دهد.
تنوع شبکه Tier-1
اتصالات شبکه به طور کلی بسیار پایدار هستند و کمترین تأثیر را دارند، اما درخواستهای متقابل جغرافیایی، یعنی اندازهگیری عملکرد یک سایت چینی از ایالات متحده، میتواند شروع به تجربه درجه بالایی از تأخیر معرفیشده از پرشهای شبکه سطح 1 کند. throttling اعمال شده تا حدی این اثرات را با throttling شبکه پنهان می کند. throttling شبیه سازی شده این اثرات را با پخش مجدد فعالیت شبکه به تنهایی کاهش می دهد.
تغییرپذیری وب سرور
سرورهای وب دارای بار متغیر هستند و همیشه با تاخیر یکسان پاسخ نمی دهند. سایتهای کمترافیک با زیرساخت میزبانی مشترک معمولاً مستعد این امر هستند. throttling کاربردی تا حدی این اثرات را با اعمال حداقل تاخیر درخواست در throttling شبکه خود پنهان می کند. دریچه گاز شبیه سازی شده مستعد این اثر است اما تأثیر کلی در مقایسه با سایر متغیرهای شبکه معمولاً کم است.
تغییرپذیری سخت افزار مشتری
سخت افزاری که صفحه وب روی آن بارگذاری می شود می تواند بر عملکرد تأثیر زیادی بگذارد. throttling کاربردی نمی تواند کار زیادی برای کاهش این مشکل انجام دهد. throttling شبیه سازی شده تا حدی این مشکل را با محدود کردن زمان اجرای نظری وظایف CPU در طول شبیه سازی کاهش می دهد.
بحث منابع مشتری
سایر برنامههایی که در یک دستگاه اجرا میشوند در حالی که Lighthouse در حال اجرا است، میتوانند باعث ایجاد اختلاف برای CPU، حافظه و منابع شبکه شوند. بدافزارها، برنامههای افزودنی مرورگر و نرمافزارهای ضد ویروس تأثیرات شدیدی بر عملکرد وب دارند. محیط های سرور چند مستاجر (مانند تراویس، AWS و غیره) نیز می توانند از این مشکلات رنج ببرند. اجرای چندین نمونه Lighthouse به طور همزمان نیز معمولاً نتایج را به دلیل این مشکل مخدوش می کند. دریچه گاز کاربردی به این موضوع حساس است. throttling شبیه سازی شده با پخش مجدد فعالیت شبکه به تنهایی و محدود کردن اجرای CPU تا حدی این مشکل را کاهش می دهد.
عدم قطعیت مرورگر
مرورگرها دارای تنوع ذاتی در اجرای وظایف خود هستند که بر نحوه بارگذاری صفحات وب تأثیر می گذارد. این برای throttling اعمال شده اجتناب ناپذیر است، زیرا در پایان روز آنها به سادگی هر چیزی را که توسط مرورگر مشاهده شده گزارش می کنند. throttling شبیهسازیشده میتواند تا حدی این اثر را با شبیهسازی اجرا به تنهایی کاهش دهد، تنها با استفاده مجدد از زمانهای اجرای کار از مرورگر در تخمین خود.
تأثیر استراتژیهای مهار
در زیر جدولی حاوی چندین منبع متداول تغییرپذیری متریک، تأثیر معمولی که بر نتایج میگذارند، و میزانی که استراتژیهای مختلف فانوس دریایی قادر به کاهش اثر آنها هستند، آمده است. درباره استراتژیهای مختلف دریچه گاز در مستندات دریچه گاز ما بیشتر بیاموزید.
منبع | تأثیر | شبیه سازی گلوله | تروتلینگ کاربردی | بدون گلوگاه |
---|---|---|---|---|
عدم جبر صفحه | بالا | بدون کاهش | بدون کاهش | بدون کاهش |
تنوع شبکه محلی | بالا | کاهش یافته است | تا حدی کاهش یافته است | بدون کاهش |
تنوع شبکه Tier-1 | متوسط | کاهش یافته است | تا حدی کاهش یافته است | بدون کاهش |
تنوع وب سرور | کم | بدون کاهش | تا حدی کاهش یافته است | بدون کاهش |
تنوع سخت افزاری مشتری | بالا | تا حدی کاهش یافته است | بدون کاهش | بدون کاهش |
مناقشه منابع مشتری | بالا | تا حدی کاهش یافته است | بدون کاهش | بدون کاهش |
عدم قطعیت مرورگر | متوسط | تا حدی کاهش یافته است | بدون کاهش | بدون کاهش |
استراتژی های مقابله با واریانس
جداسازی عوامل خارجی
- صفحه خود را تا حد امکان از نفوذ شخص ثالث جدا کنید. هرگز جالب نیست که به خاطر شکست های متغیر دیگری سرزنش شوید.
- عدم قطعیت کد خود را در طول آزمایش جدا کنید. اگر انیمیشنی دارید که به صورت تصادفی نمایش داده می شود، ممکن است اعداد عملکرد شما نیز تصادفی باشند!
- سرور آزمایشی خود را تا حد امکان از نوسانات شبکه جدا کنید. هر زمان که پایداری نگران کننده باشد، از لوکال هاست یا ماشینی در همان شبکه استفاده کنید.
- محیط مشتری خود را از تأثیرات خارجی مانند نرم افزار ضد ویروس و برنامه های افزودنی مرورگر جدا کنید. در صورت امکان از یک دستگاه اختصاصی برای آزمایش استفاده کنید.
اگر دستگاه شما واقعاً منابع محدودی دارد یا ایجاد یک محیط تمیز دشوار بوده است، از یک محیط آزمایشگاه میزبانی شده مانند PageSpeed Insights یا WebPageTest استفاده کنید تا آزمایشات خود را برای شما اجرا کند. در شرایط یکپارچه سازی مداوم، در صورت امکان از سرورهای اختصاصی استفاده کنید. محیطهای رایگان CI و نمونههای «قابل انفجار» معمولاً کاملاً فرار هستند.
چندین بار Lighthouse را اجرا کنید
هنگام ایجاد آستانه های شکست خود، چه ذهنی و چه برنامه ای، به جای آزمون های منفرد، از مقادیر کل مانند میانه، صدک 90 یا حتی دقیقه استفاده کنید.
میانگین امتیاز Lighthouse از 5 اجرا دو برابر پایدارتر از 1 اجرا است و ابزارهایی مانند pwmetrics می توانند Lighthouse را به طور خودکار برای شما اجرا کنند. استفاده از حداقل مقدار نیز نسبت به آزمایش نکردن یک پیشرفت بزرگ است و اجرای آن فوق العاده ساده است، فقط کافی است Lighthouse را تا 5 بار اجرا کنید تا زمانی که آن را تایید کند!