Deniz Feneri Değişkenliği

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.

Geri bildirim

Bu sayfayı yararlı buldunuz mu?
Evet
Bu sayfanın en iyi yanı neydi?
Hedeflerimi tamamlamama yardımcı oldu
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
İhtiyacım olan bilgileri içeriyordu
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Doğru bilgiler içeriyordu
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Okuması kolaydı
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Diğer
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Hayır
Bu sayfanın en kötü yanı neydi?
Hedeflerimi tamamlamama yardımcı olmadı
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
İhtiyacım olan bilgiler eksikti
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Yanlış bilgi içeriyordu
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Okuması zordu
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.
Diğer
Geri bildiriminiz için teşekkür ederiz. Bu sayfanın nasıl geliştirilebileceğiyle ilgili belirli fikirleriniz varsa lütfen sorun kaydı oluşturun.