Na skuteczność stron internetowych ma wpływ wiele czynników. Wyniki wydajności w Lighthouse zmieniają się zwykle z powodu zmienności technologii internetowych i sieci, nawet jeśli na stronie nic się nie zmienia.
Źródła zmienności
Zmienność w pomiarze skuteczności wprowadza szereg kanałów o różnym stopniu wpływu. Poniżej znajdziesz tabelę z kilkoma typowymi źródłami zmienności wskaźników, ich typowym wpływem na wyniki oraz zakresem, w jakim będą one prawdopodobnie występować w różnych środowiskach.
Źródło | Wpływ | Typowy użytkownik | PageSpeed Insights | Laboratorium kontrolowane |
---|---|---|---|---|
Niedeterminizm strony | Wysoka | PRAWDOPODOBNIE | PRAWDOPODOBNIE | PRAWDOPODOBNIE |
Zmienność w sieci lokalnej | Wysoka | PRAWDOPODOBNIE | NIEPRAWIDŁOWO | NIEPRAWIDŁOWO |
Zmienność sieci poziomu 1 | Medium | MOŻLIWE | MOŻLIWE | MOŻLIWE |
Zmienność serwera WWW | Niska | PRAWDOPODOBNIE | PRAWDOPODOBNIE | PRAWDOPODOBNIE |
Zmienność sprzętu klienta | Wysoka | PRAWDOPODOBNIE | NIEPRAWIDŁOWO | NIEPRAWIDŁOWO |
Rywalizacja o zasoby klienta | Wysoka | PRAWDOPODOBNIE | MOŻLIWE | NIEPRAWIDŁOWO |
Niedeterminizm przeglądarek | Medium | PEWNO | PEWNO | PEWNO |
Poniżej znajdziesz bardziej szczegółowe opisy źródeł wariancji i ich wpływu na najbardziej prawdopodobne kombinacje środowiska wykonawczego i środowiska Lighthouse. W każdym z tych 3 środowisk można stosować ograniczanie i symulowane ograniczanie, ale typowy użytkownik korzysta z symulowanego ograniczania.
Niedeterminizm strony
Strony mogą zawierać logikę, która nie jest deterministyczna, czyli zmienia sposób postrzegania strony przez użytkownika, np. test A/B, który zmienia układ i wczytywane zasoby, lub wyświetlanie reklam w zależności od postępu kampanii. To celowe i nieusuwalne źródło rozbieżności. Jeśli strona zmienia się w sposób, który pogarsza jej wydajność, narzędzie Lighthouse powinno być w stanie zidentyfikować ten przypadek. W tym przypadku jedynym sposobem na uniknięcie problemów jest dbanie o to, aby właściciel witryny testował dokładnie tę samą wersję strony w różnych uruchomieniach.
Zmienność działania sieci lokalnej
W sieciach lokalnych występują nieodłączne wahania związane z utratą pakietów, zmiennym priorytetem ruchu i przeciążeniem sieci na ostatnim etapie. Najczęściej są na to najbardziej narażeni użytkownicy z tańszymi routerami i wieloma urządzeniami o ograniczonej przepustowości. Zastosowane ograniczanie częściowo łagodzi te efekty przez zastosowanie minimalnego czasu oczekiwania na żądanie i maksymalnej przepustowości, które maskują kolejne próby. Symulowane ograniczanie łagodzi te skutki, samodzielnie odtwarzając aktywność sieci.
Zmienność sieci poziomu 1
Połączenia sieciowe są zwykle bardzo stabilne i mają minimalny wpływ na żądania z różnych lokalizacji geograficznych, np. podczas pomiaru wydajności chińskiej witryny z USA mogą wystąpić znaczne opóźnienia spowodowane przeskokami sieciowymi pierwszego poziomu. Zastosowano – częściowe maskowanie tych efektów za pomocą ograniczania wykorzystania sieci. Symulowane ograniczanie łagodzi te skutki, samodzielnie odtwarzając aktywność sieci.
Zmienność serwera WWW
Serwery WWW są wczytywane ze zmiennym opóźnieniem i nie zawsze odpowiadają z takim samym opóźnieniem. Bardziej narażone są na to witryny o mniejszym natężeniu ruchu ze współdzieloną infrastrukturą hostingu. Ograniczanie stosowane częściowo maskuje te efekty przez zastosowanie minimalnego czasu oczekiwania na żądanie w ramach ograniczania sieci. Symulowane ograniczanie jest podatne na ten efekt, ale ogólny wpływ jest zwykle niewielki w porównaniu z innymi zmiennością sieci.
Zmienność sprzętu klienckiego
Sprzęt, na którym wczytuje się strona internetowa, może znacznie wpływać na wydajność. Stosowane ograniczanie nie ma żadnego wpływu na rozwiązanie tego problemu. Symulowane ograniczanie częściowo łagodzi ten problem przez ograniczenie teoretycznego czasu wykonywania zadań procesora podczas symulacji.
Rywalizacja o zasoby klienta
Inne aplikacje działające na tym samym komputerze, gdy działa Lighthouse, mogą powodować rywalizację o procesor, pamięć i zasoby sieciowe. Szczególnie na wydajność witryny wpływa złośliwe oprogramowanie, rozszerzenia przeglądarki oraz oprogramowanie antywirusowe. Te problemy mogą również występować w środowiskach serwerów wielu najemców (np. Travis, AWS itp.). Korzystanie z kilku wystąpień Lighthouse także zwykle zniekształca wyniki z powodu tego problemu. Ten problem może dotyczyć stosowanych ograniczeń. Symulowane ograniczanie częściowe eliminuje ten problem przez ponowne odtwarzanie aktywności w sieci i ograniczenie wykonywania procesora.
Niedeterminizm przeglądarek
Przeglądarki mają nieodłączną zmienność w wykonywaniu zadań, która wpływa na sposób wczytywania stron internetowych. Jest to nieuniknione w przypadku stosowania ograniczania, ponieważ pod koniec dnia raporty po prostu wysyłają raporty zaobserwowane przez przeglądarkę. Symulowane ograniczanie jest w stanie częściowo ograniczyć ten efekt dzięki własnej symulacji wykonywania zadań i wykorzystuje w szacunkach tylko czasy wykonywania zadań z przeglądarki.
Wpływ strategii ograniczania
Poniżej znajdziesz tabelę z kilkoma typowymi źródłami zmienności danych, ich typowym wpływem na wyniki oraz zakresem, w jakim różne strategie ograniczania Lighthouse mogą złagodzić ich efekt. Więcej informacji o różnych strategiach ograniczania znajdziesz w dokumentacji ograniczania.
Źródło | Wpływ | Symulowane ograniczanie | Zastosowano ograniczanie | Bez ograniczania |
---|---|---|---|---|
Niedeterminizm strony | Wysoka | BRAK MITOWANIA | BRAK MITOWANIA | BRAK MITOWANIA |
Zmienność w sieci lokalnej | Wysoka | PRZENIESIONE | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA |
Zmienność sieci poziomu 1 | Medium | PRZENIESIONE | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA |
Zmienność serwera WWW | Niska | BRAK MITOWANIA | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA |
Zmienność sprzętu klienta | Wysoka | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA | BRAK MITOWANIA |
Rywalizacja o zasoby klienta | Wysoka | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA | BRAK MITOWANIA |
Niedeterminizm przeglądarek | Medium | CZĘŚCIOWE MIEJSCA | BRAK MITOWANIA | BRAK MITOWANIA |
Strategie radzenia sobie z wariancją
Wyodrębnij czynniki zewnętrzne
- Postaraj się odizolować swoją stronę od źródeł zewnętrznych. Nigdy nie obwiniać się za zmienne porażki innych osób.
- Wyizoluj niedeterminizm w swoim kodzie podczas testów. Jeśli masz animację, która pojawia się w sposób losowy, Twoje wyniki też mogą być losowe.
- Odizoluj serwer testowy od jak największej zmienności sieci. Jeśli zależy Ci na stabilności, używaj lokalnego hosta lub komputera w tej samej sieci.
- Odizoluj środowisko klienta od czynników zewnętrznych, takich jak oprogramowanie antywirusowe i rozszerzenia przeglądarki. W miarę możliwości używaj dedykowanego urządzenia do testowania.
Jeśli Twój komputer ma bardzo ograniczone zasoby lub tworzenie czystego środowiska jest trudne, przeprowadź testy w hostowanym środowisku laboratoryjnym, takim jak PageSpeed Insights lub WebPageTest. W przypadku ciągłej integracji używaj w miarę możliwości dedykowanych serwerów. Wolne środowiska CI i instancje „burstable” są zwykle dość zmienne.
Uruchom Lighthouse wiele razy
Podczas tworzenia progów pod kątem porażki (mentalnych lub automatycznych) używaj wartości zagregowanych, takich jak mediana, 90 centyl lub nawet wartość minimalna, zamiast pojedynczych testów.
Mediana wyniku Lighthouse 5 uruchomień jest 2 razy stabilniejsza niż jedno uruchomienie, a narzędzia takie jak pwmetrics mogą uruchamiać Lighthouse automatycznie. Użycie wartości minimalnej to duża zmiana w stosunku do nietestowania. Jest ona niezwykle prosta w implementacji. Wystarczy uruchomić Lighthouse do 5 razy, aż minie.