Die Leistung von Webseiten wird von vielen Faktoren beeinflusst. Lighthouse-Leistungswerte ändern sich tendenziell aufgrund der inhärenten Schwankungen bei Web- und Netzwerktechnologien, selbst wenn die Seite nicht geändert wurde.
Quellen der Variabilität
Abweichungen bei der Leistungsmessung werden über eine Reihe von Kanälen mit unterschiedlichen Auswirkungen eingeführt. Die folgende Tabelle enthält mehrere häufige Quellen der Messwertvariabilität, deren typische Auswirkungen auf die Ergebnisse und das Ausmaß, in dem sie wahrscheinlich in verschiedenen Umgebungen auftreten.
Quelle | Auswirkungen | Typischer Endnutzer | PageSpeed Insights | Kontrolliertes Lab |
---|---|---|---|---|
Nichtdeterminismus der Seite | Hoch | Wahrscheinlich | Wahrscheinlich | Wahrscheinlich |
Variabilität lokaler Netzwerke | Hoch | Wahrscheinlich | UNWAHRSCHEINLICH | UNWAHRSCHEINLICH |
Tier-1-Netzwerkvariabilität | Medium | POSSIBLE | POSSIBLE | POSSIBLE |
Webservervariabilität | Niedrig | Wahrscheinlich | Wahrscheinlich | Wahrscheinlich |
Variabilität der Clienthardware | Hoch | Wahrscheinlich | UNWAHRSCHEINLICH | UNWAHRSCHEINLICH |
Konflikt bei Clientressourcen | Hoch | Wahrscheinlich | POSSIBLE | UNWAHRSCHEINLICH |
Nichtdeterminismus des Browsers | Medium | BESTIMMTE | BESTIMMTE | BESTIMMTE |
Nachfolgend finden Sie detailliertere Beschreibungen der Varianzquellen und ihrer Auswirkungen auf die wahrscheinlichsten Kombinationen aus Lighthouse-Laufzeit und Umgebung. Obwohl die angewandte Drosselung und simulierte Drosselung in jeder dieser drei Umgebungen verwendet werden können, verwendet der typische Endnutzer die simulierte Drosselung.
Nichtdeterminismus der Seite
Seiten können Logik enthalten, die nicht deterministisch ist und die die Art und Weise ändert, wie ein Nutzer eine Seite sieht. Beispielsweise kann es sich um einen A/B-Test handeln, bei dem das Layout und die geladenen Assets geändert werden, oder um eine andere Anzeige je nach Fortschritt der Kampagne. Dies ist eine bewusste und unentfernbare Varianzquelle. Wenn sich die Seite so ändert, dass die Leistung beeinträchtigt wird, sollte Lighthouse dies erkennen können. Die einzige Abhilfe dafür besteht darin, dass der Websiteinhaber dafür sorgt, dass immer dieselbe Version der Seite zwischen verschiedenen Ausführungen getestet wird.
Variabilität des lokalen Netzwerks
Lokale Netzwerke weisen inhärente Schwankungen aufgrund des Paketverlusts, der variablen Trafficpriorisierung und der Netzwerküberlastung auf der letzten Meile auf. Nutzer mit günstigen Routern und vielen Geräten mit begrenzter Bandbreite sind in der Regel am anfälligsten dafür. Durch die angewendete Drosselung werden diese Auswirkungen teilweise abgemildert, da eine minimale Anfragelatenz und ein maximaler Durchsatz angewendet werden, die zugrunde liegende Wiederholungsversuche maskiert. Die simulierte Drosselung verringert diese Auswirkungen, da die Netzwerkaktivität eigenständig wiedergegeben wird.
Tier-1-Netzwerkvariabilität
Netzwerkverbindungen sind in der Regel sehr stabil und haben nur minimale Auswirkungen, aber bei standortübergreifenden Anfragen, d.h. bei der Messung der Leistung eines chinesischen Standorts in den USA, kann es zu einer hohen Latenz kommen, die durch Tier-1-Netzwerk-Hops entsteht. Bei der angewendeten Drosselung werden diese Effekte durch Netzwerkdrosselung teilweise maskiert. Die simulierte Drosselung verringert diese Auswirkungen, da die Netzwerkaktivität eigenständig wiedergegeben wird.
Webservervariabilität
Webserver haben eine variable Last und reagieren nicht immer mit der gleichen Verzögerung. Websites mit geringerem Traffic mit gemeinsam genutzter Hostinginfrastruktur sind in der Regel anfälliger dafür. Bei der angewandten Drosselung werden diese Effekte teilweise maskiert, indem bei der Netzwerkdrosselung eine minimale Anfragelatenz angewendet wird. Die simulierte Drosselung ist anfällig für diesen Effekt, aber die Gesamtauswirkung ist im Vergleich zu anderen Netzwerkvariabilität in der Regel gering.
Variabilität der Client-Hardware
Die Hardware, auf der die Webseite geladen wird, kann die Leistung erheblich beeinträchtigen. Durch die angewendete Drosselung lässt sich dieses Problem nicht beheben. Eine simulierte Drosselung minimiert dieses Problem teilweise, indem die theoretische Ausführungszeit von CPU-Aufgaben während der Simulation begrenzt wird.
Konflikt bei Clientressourcen
Andere Anwendungen, die auf demselben Computer ausgeführt werden, während Lighthouse ausgeführt wird, können zu Konflikten bei CPU-, Arbeitsspeicher- und Netzwerkressourcen führen. Malware, Browsererweiterungen und Antivirensoftware wirken sich besonders stark auf die Webleistung aus. Auch mandantenfähige Serverumgebungen (wie Travis, AWS usw.) können unter diesen Problemen leiden. Wenn Sie mehrere Instanzen von Lighthouse gleichzeitig ausführen, werden die Ergebnisse aufgrund dieses Problems in der Regel verzerrt. Die angewendete Drosselung ist anfällig für dieses Problem. Durch die simulierte Drosselung wird dieses Problem teilweise gemindert, da die Netzwerkaktivität allein wiedergegeben und die CPU-Ausführung begrenzt wird.
Nichtdeterminismus des Browsers
Die Ausführung von Aufgaben in Browsern variiert, was sich darauf auswirkt, wie Webseiten geladen werden. Dies ist bei der angewendeten Drosselung unvermeidbar, da nur die vom Browser beobachteten Ereignisse gemeldet werden. Die simulierte Drosselung kann diesen Effekt teilweise abschwächen, indem die Ausführung alleine simuliert wird. Dabei werden nur die Ausführungszeiten der Aufgaben aus dem Browser in der Schätzung wiederverwendet.
Auswirkungen von Drosselungsstrategien
In der folgenden Tabelle sind mehrere häufige Quellen von Messwertvariabilität, die typischen Auswirkungen auf die Ergebnisse und das Maß aufgeführt, in dem verschiedene Lighthouse-Drosselungsstrategien ihre Auswirkungen mindern können. Weitere Informationen zu den verschiedenen Drosselungsstrategien finden Sie in unserer Dokumentation zur Drosselung.
Quelle | Auswirkungen | Simulierte Drosselung | Angewendete Drosselung | Keine Drosselung |
---|---|---|---|---|
Nichtdeterminismus der Seite | Hoch | KEINE EINSCHRÄNKUNG | KEINE EINSCHRÄNKUNG | KEINE EINSCHRÄNKUNG |
Variabilität lokaler Netzwerke | Hoch | EINGESTELLT | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG |
Tier-1-Netzwerkvariabilität | Medium | EINGESTELLT | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG |
Webservervariabilität | Niedrig | KEINE EINSCHRÄNKUNG | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG |
Variabilität der Clienthardware | Hoch | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG | KEINE EINSCHRÄNKUNG |
Konflikt bei Clientressourcen | Hoch | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG | KEINE EINSCHRÄNKUNG |
Nichtdeterminismus des Browsers | Medium | TEILNAHME GESCHLOSSEN | KEINE EINSCHRÄNKUNG | KEINE EINSCHRÄNKUNG |
Strategien für den Umgang mit Varianz
Externe Faktoren isolieren
- Isolieren Sie Ihre Seite so weit wie möglich vom Einfluss Dritter. Es macht nie Spaß, für die Fehler eines anderen Nutzers die Schuld zu geben.
- Isolieren Sie beim Testen den Nichtdeterminismus Ihres Codes. Wenn Sie eine Animation haben, die zufällig erscheint, könnten Ihre Leistungszahlen auch zufällig sein.
- Isolieren Sie Ihren Testserver von möglichst vielen Netzwerkvolatilität. Verwenden Sie localhost oder einen Computer im selben Netzwerk, wenn es um die Stabilität geht.
- Isolieren Sie Ihre Clientumgebung von externen Einflüssen wie Antivirensoftware und Browsererweiterungen. Verwenden Sie nach Möglichkeit ein spezielles Gerät zum Testen.
Wenn die Ressourcen Ihres Computers sehr begrenzt sind oder die Erstellung einer sauberen Umgebung schwierig war, verwenden Sie eine gehostete Lab-Umgebung wie PageSpeed Insights oder WebPageTest, um die Tests für Sie durchzuführen. Verwenden Sie für Continuous-Integration-Situationen nach Möglichkeit dedizierte Server. Kostenlose CI-Umgebungen und „Bursting-Instanzen“ sind in der Regel relativ flüchtig.
Lighthouse mehrmals ausführen
Verwenden Sie beim Erstellen Ihrer Schwellenwerte für nicht bestandene Fehler, egal ob mental oder programmatisch, anstelle von Einzeltests zusammengefasste Werte wie den Medianwert, das 90. Perzentil oder sogar die Mindestwerte.
Der Medianwert von 5 Durchläufen in Lighthouse ist doppelt so stabil wie bei einem Durchlauf und Tools wie pwmetrics können Lighthouse automatisch für Sie ausführen. Die Verwendung des Minimalwerts ist im Vergleich zu keinen Tests eine große Verbesserung. Die Implementierung ist unglaublich einfach. Führen Sie einfach bis zu fünfmal Lighthouse aus, bis die Prüfung bestanden ist.