Web sayfalarının performansına katkıda bulunan birçok faktör vardır. Lighthouse performans puanları, sayfada değişiklik olmasa bile web ve ağ teknolojilerinin yapısı nedeniyle değişme eğilimindedir.
Değişkenlik Kaynakları
Performans ölçümündeki değişkenlik, farklı etki düzeylerine sahip bir dizi kanal aracılığıyla sağlanır. Aşağıda, metrik değişkenliğinin birkaç yaygın kaynağını, bunların sonuçlar üzerindeki tipik etkisini ve farklı ortamlarda meydana gelme olasılıklarını içeren bir tablo verilmiştir.
Kaynak | Etki | Tipik Son Kullanıcı | PageSpeed Insights | Kontrollü Laboratuvar |
---|---|---|---|---|
Sayfalarda determinizmsizlik | Yüksek | BELKİ | BELKİ | BELKİ |
Yerel ağ değişkenliği | Yüksek | BELKİ | BÜYÜK DEĞİL | BÜYÜK DEĞİL |
1. katman ağ değişkenliği | Aracı | OLASI | OLASI | OLASI |
Web sunucusu değişkenliği | Düşük | BELKİ | BELKİ | BELKİ |
İstemci donanımının değişkenliği | Yüksek | BELKİ | BÜYÜK DEĞİL | BÜYÜK DEĞİL |
İstemci kaynağı anlaşmazlığı | Yüksek | BELKİ | OLASI | BÜYÜK DEĞİL |
Tarayıcı belirsizliği | Aracı | BELİRLİ | BELİRLİ | BELİRLİ |
Aşağıda, varyans kaynakları ve bunların Lighthouse çalışma zamanı + ortamının en olası kombinasyonları üzerindeki etkisiyle ilgili daha ayrıntılı açıklamalar verilmiştir. Uygulanan kısıtlama ve simüle edilmiş kısıtlama yaklaşımları bu üç ortamdan herhangi birinde kullanılabilse de tipik son kullanıcılar, kısıtlama simülasyonundan yararlanır.
Sayfa Nondeterminizmi
Sayfalar, kullanıcının bir sayfayla ilgili deneyimleme şeklini değiştiren belirleyici olmayan bir mantık içerebilir. Örneğin, düzeni ve yüklenen öğeleri değiştiren bir A/B testi veya kampanyanın ilerleme durumuna göre farklı bir reklam deneyimi olabilir. Bu, kasıtlı ve kaldırılamayan bir sapma kaynağıdır. Sayfa, performansa zarar verecek şekilde değişirse Lighthouse bu durumu saptayabilmelidir. Buradaki tek çözüm, site sahibinin farklı çalıştırmalar arasında sayfanın tam olarak aynı sürümünün test edilmesini sağlamaktır.
Yerel Ağ Değişkenliği
Yerel ağlar; paket kaybı, değişken trafik önceliklendirmesi ve son kilometre ağ tıkanıklığı gibi yapıları gereği değişkendir. Genellikle bu durumdan en fazla etkilenen, ucuz yönlendiricilere sahip ve sınırlı bant genişliği paylaşan birçok cihazı olan kullanıcılardır. Uygulanan kısıtlama, altyapıdaki yeniden denemeleri maskeleyen minimum istek gecikmesi ve maksimum işleme hızı uygulayarak bu etkileri kısmen azaltır. Simüle edilmiş kısıtlama, ağ etkinliğini kendi başına yeniden oynatarak bu etkileri azaltır.
1. Katman Ağ Değişkenliği
Ağ ara bağlantıları genellikle çok kararlıdır ve minimum etkiye sahiptir ancak coğrafi bölgeler arası istekler (ör.ABD'den Çin'deki bir sitenin performansını ölçme) 1. katman ağ atlamalarından kaynaklanan yüksek düzeyde bir gecikmeyle karşılaşmaya başlayabilir. Uygulanan kısıtlama, ağ kısıtlama ile bu etkileri kısmen maskeler. Simüle edilmiş kısıtlama, ağ etkinliğini kendi başına yeniden oynatarak bu etkileri azaltır.
Web Sunucusu Değişkenliği
Web sunucuları değişken yüktedir ve her zaman aynı gecikmeyle yanıt vermez. Paylaşılan barındırma altyapısına sahip, trafiği düşük siteler genellikle buna daha açıktır. Uygulanan kısıtlama, ağ kısıtlamada minimum istek gecikmesi uygulayarak bu etkileri kısmen maskeler. Kısıtlama Simüle edilmiş ise bu etkiden etkilenebilir. Ancak diğer ağ değişkenliğiyle karşılaştırıldığında genel etki genellikle düşüktür.
İstemci Donanımı Değişkenliği
Web sayfasının yüklendiği donanım, performansı önemli ölçüde etkileyebilir. Uygulanan kısıtlama, bu sorunu azaltmak için çok fazla işlem yapamaz. Simüle edilmiş kısıtlama, simülasyon sırasında CPU görevlerinin teorik olarak yürütülme süresini sınırlayarak bu sorunu kısmen azaltır.
Müşteri Kaynağı Anlaşmazlığı
Lighthouse çalışırken aynı makinede çalışan diğer uygulamalar CPU, bellek ve ağ kaynaklarında çakışmaya neden olabilir. Kötü amaçlı yazılımlar, tarayıcı uzantıları ve virüsten koruma yazılımlarının web performansı üzerinde özellikle güçlü etkileri vardır. Çok kiracılı sunucu ortamlarında (ör. Travis, AWS vb.) de bu sorunlar yaşanabilir. Aynı anda birden fazla Lighthouse örneğini çalıştırmak da genellikle bu sorundan dolayı sonuçları bozar. Uygulanan kısıtlama, bu soruna açıktır. Simüle edilmiş kısıtlama, ağ etkinliğini kendi başına yeniden oynatarak ve CPU yürütmesini sınırlandırarak bu sorunu kısmen azaltır.
Tarayıcı Nondeterminizmi
Tarayıcılar, görevleri yürütürken web sayfalarının yüklenme şeklini etkileyen kendiliğinden değişkenlik gösterir. Günün sonunda sadece tarayıcı tarafından gözlemlenenleri raporladıkları için kısıtlama uygulanırken bu durum kaçınılmazdır. Simüle edilmiş kısıtlama, yürütmeyi simüle ederek bu etkiyi kısmen azaltabilir, yalnızca tarayıcının görev yürütme sürelerini tahmininde yeniden kullanır.
Kısıtlama Stratejilerinin Etkisi
Metrik değişkenliğine dair yaygın birkaç kaynağı, bunların sonuçlar üzerindeki tipik etkisini ve farklı Lighthouse kısıtlama stratejilerinin etkilerini ne ölçüde azaltabildiğini içeren bir tablo aşağıda verilmiştir. Kısıtlama belgelerimizde farklı kısıtlama stratejileri hakkında daha fazla bilgi edinebilirsiniz.
Kaynak | Etki | Kısıtlama Simülasyonu | Uygulanan Kısıtlama | Kısıtlama Yok |
---|---|---|---|---|
Sayfalarda determinizmsizlik | Yüksek | ÇÖZÜME YOK | ÇÖZÜME YOK | ÇÖZÜME YOK |
Yerel ağ değişkenliği | Yüksek | DÜZELTİLDİ | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK |
1. katman ağ değişkenliği | Aracı | DÜZELTİLDİ | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK |
Web sunucusu değişkenliği | Düşük | ÇÖZÜME YOK | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK |
İstemci donanımının değişkenliği | Yüksek | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK | ÇÖZÜME YOK |
İstemci kaynağı anlaşmazlığı | Yüksek | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK | ÇÖZÜME YOK |
Tarayıcı belirsizliği | Aracı | KISMİ OLARAK AZALTILDI | ÇÖZÜME YOK | ÇÖZÜME YOK |
Varyansla Başa Çıkma Stratejileri
Harici Faktörleri Ayırma
- Sayfanızı üçüncü tarafların etkisinden mümkün olduğunca izole edin. Bir başkasının değişken başarısızlıklarından dolayı sorumlu olmak hiçbir zaman eğlenceli değildir.
- Test sırasında kendi kodunuzun belirleyiciliğini yalıtın. Rastgele görünen bir animasyonunuz varsa performans sayılarınız da rastgele olabilir.
- Test sunucunuzu mümkün olduğunca ağ dalgalanmalarından ayırın. Kararlılıkla ilgili bir sorun olduğunda localhost'u veya tam olarak aynı ağdaki bir makineyi kullanın.
- İstemci ortamınızı antivirüs yazılımı ve tarayıcı uzantıları gibi dış etkilerden izole edin. Mümkün olduğunda test için özel bir cihaz kullanın.
Makinenizin kaynakları gerçekten kısıtlıysa veya temiz bir ortam oluşturmak zor olduysa, testlerinizi sizin için çalıştırmak üzere PageSpeed Insights veya WebPageTest gibi barındırılan bir laboratuvar ortamı kullanın. Sürekli entegrasyon durumlarında, mümkün olduğunda özel sunucular kullanın. Ücretsiz CI ortamları ve "patlayıcı" örnekler genellikle son derece değişkendir.
Lighthouse'u Birden Fazla Kez Çalıştır
Zihinsel veya programatik hata eşiklerinizi oluştururken tek testler yerine ortanca değer, 90. yüzdelik dilim ve hatta minimum değer gibi toplu değerleri kullanın.
5 çalıştırma ortanca Lighthouse puanı, 1 çalıştırmadan iki kat daha kararlıdır ve pwMetric gibi araçlar Lighthouse'u sizin için otomatik olarak çalıştırabilir. Minimum değeri kullanmak, hiç test etmemeye göre büyük bir iyileştirme sağlar ve uygulaması son derece kolaydır. Test geçene kadar Lighthouse'u 5 kata kadar çalıştırmanız yeterlidir.