Variabilità di Lighthouse

Il rendimento delle pagine web è influenzato da molti fattori. I punteggi delle prestazioni di Lighthouse tendono a cambiare a causa della variabilità intrinseca nelle tecnologie web e di rete, anche se non c'è stata una modifica alla pagina.

Fonti di variabilità

La variabilità nella misurazione delle prestazioni viene introdotta tramite una serie di canali con diversi livelli di impatto. Di seguito è riportata una tabella contenente diverse fonti comuni di variabilità delle metriche, il loro impatto tipico sui risultati e la portata con cui è probabile che si verifichino in ambienti diversi.

Origine Impatto Utente finale tipico PageSpeed Insights Lab controllato
Non determinismo della pagina Alto PROBABILE PROBABILE PROBABILE
Variabilità della rete locale Alto PROBABILE IMPROBABILE IMPROBABILE
Variabilità di rete livello 1 Medium POSSIBILE POSSIBILE POSSIBILE
Variabilità del server web Basso PROBABILE PROBABILE PROBABILE
Variabilità dell'hardware client Alto PROBABILE IMPROBABILE IMPROBABILE
Contesa delle risorse client Alto PROBABILE POSSIBILE IMPROBABILE
Non determinismo del browser Medium DETERMINATO DETERMINATO DETERMINATO

Di seguito sono riportate descrizioni più dettagliate delle origini della varianza e dell'impatto che hanno sulle combinazioni più probabili di runtime e ambiente di Lighthouse. Sebbene sia possibile utilizzare approcci di limitazione e limitazione simulata applicati in uno di questi tre ambienti, l'utente finale tipico utilizza una limitazione simulata.

Non determinismo della pagina

Le pagine possono contenere una logica non deterministica che cambia l'esperienza di un utente, ad esempio un test A/B che modifica il layout e gli asset caricati oppure un'esperienza pubblicitaria diversa in base all'avanzamento della campagna. Questa è una fonte di varianza intenzionale e irremovibile. Se la pagina cambia in modo da compromettere le prestazioni, Lighthouse dovrebbe essere in grado di identificare questo caso. L'unica mitigazione in questo caso è da parte del proprietario del sito nel garantire che la stessa versione della pagina venga testata tra diverse esecuzioni.

Variabilità della rete locale

Le reti locali hanno una variabilità intrinseca dovuta a perdita di pacchetti, priorità variabile del traffico e congestione della rete dell'ultimo miglio. Gli utenti con router economici e molti dispositivi che condividono una larghezza di banda limitata sono in genere i più suscettibili a questo problema. La limitazione applicata mitiga parzialmente questi effetti mediante l'applicazione di una latenza di richiesta minima e una velocità effettiva massima che maschera i nuovi tentativi sottostanti. La limitazione simulata attenua questi effetti replicando autonomamente l'attività di rete.

Variabilità della rete Tier-1

Le interconnessioni di rete sono in genere molto stabili e hanno un impatto minimo, ma le richieste tra regioni, ovvero la misurazione delle prestazioni di un sito cinese proveniente dagli Stati Uniti, possono iniziare a riscontrare un elevato grado di latenza introdotto dagli hop di rete di livello 1. La limitazione Applicata maschera parzialmente questi effetti con la limitazione della rete. La limitazione simulata attenua questi effetti replicando autonomamente l'attività di rete.

Variabilità del server web

I server web hanno un carico variabile e non sempre rispondono con lo stesso ritardo. I siti a traffico più basso con un'infrastruttura di hosting condivisa sono in genere più suscettibili a questo problema. La limitazione Applicata maschera parzialmente questi effetti mediante l'applicazione di una latenza di richiesta minima nella limitazione della rete. La limitazione simulata è suscettibile a questo effetto, ma l'impatto complessivo è generalmente basso rispetto ad altre variabilità della rete.

Variabilità dell'hardware client

L'hardware su cui viene caricata la pagina web può influire notevolmente sulle prestazioni. La limitazione Applicata non può fare molto per mitigare questo problema. La limitazione simulata riduce parzialmente questo problema limitando il tempo di esecuzione teorico delle attività della CPU durante la simulazione.

Contesa delle risorse del client

Altre applicazioni in esecuzione sulla stessa macchina mentre Lighthouse è in esecuzione può causare contese per CPU, memoria e risorse di rete. Malware, estensioni del browser e software antivirus hanno un impatto particolarmente forte sulle prestazioni web. Anche gli ambienti server multi-tenant (come Travis, AWS e così via) possono presentare questi problemi. Anche l'esecuzione di più istanze di Lighthouse contemporaneamente in genere distorce i risultati a causa di questo problema. La limitazione Applicata è soggetta a questo problema. La limitazione simulata riduce parzialmente questo problema riproducendo automaticamente l'attività di rete e limitando l'esecuzione della CPU.

Non determinismo del browser

I browser hanno una variabilità intrinseca nell'esecuzione delle attività che influisce sul caricamento delle pagine web. Ciò è inevitabile per la limitazione applicata, in quanto alla fine della giornata viene semplicemente riportato ciò che è stato osservato dal browser. La limitazione simulata è in grado di mitigare parzialmente questo effetto simulando l'esecuzione da sola, riutilizzando solo i tempi di esecuzione delle attività del browser nella stima.

Effetti delle strategie di limitazione

Di seguito è riportata una tabella contenente diverse fonti comuni di variabilità delle metriche, l'impatto tipico che hanno sui risultati e la misura in cui le diverse strategie di limitazione di Lighthouse sono in grado di mitigare il loro effetto. Scopri di più sulle diverse strategie di limitazione nella nostra documentazione sulla limitazione.

Origine Impatto Limitazione simulata Limitazione applicata Nessuna limitazione
Non determinismo della pagina Alto NESSUNA MITIGAZIONE NESSUNA MITIGAZIONE NESSUNA MITIGAZIONE
Variabilità della rete locale Alto MITITO PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE
Variabilità di rete livello 1 Medium MITITO PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE
Variabilità del server web Basso NESSUNA MITIGAZIONE PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE
Variabilità dell'hardware client Alto PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE NESSUNA MITIGAZIONE
Contesa delle risorse client Alto PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE NESSUNA MITIGAZIONE
Non determinismo del browser Medium PARZIALMENTE MITIGATO NESSUNA MITIGAZIONE NESSUNA MITIGAZIONE

Strategie per gestire la variazione

Isola i fattori esterni

  • Isola il più possibile la tua pagina dall'influenza di terze parti. Non è mai divertente essere accusati degli errori variabili di qualcun altro.
  • Isola il non determinismo del tuo codice durante il test. Se c'è un'animazione che viene mostrata in modo casuale, anche i dati relativi al rendimento potrebbero essere casuali.
  • Isola il server di test dalla massima volatilità possibile della rete. Utilizza localhost o una macchina sulla stessa rete esatta ogni volta che la stabilità è un problema.
  • Isola il tuo ambiente client da influenze esterne come il software antivirus e le estensioni del browser. Quando possibile, utilizza un dispositivo dedicato per i test.

Se la tua macchina ha risorse davvero limitate o se creare un ambiente pulito è stato difficile, utilizza un ambiente lab ospitato come PageSpeed Insights o WebPageTest per eseguire i test per te. In situazioni di integrazione continua, utilizza server dedicati quando possibile. Gli ambienti CI senza costi e le istanze "con possibilità di burst" sono in genere abbastanza volatili.

Esegui Lighthouse più volte

Quando crei le soglie per l'errore, sia mentale che programmatico, utilizza valori aggregati come mediana, 90° percentile o persino minimo anziché singoli test.

Il punteggio medio di Lighthouse di 5 corse è due volte più stabile di una e strumenti come pwmetrics possono eseguire Lighthouse per te automaticamente. L'utilizzo del valore minimo rappresenta un notevole miglioramento rispetto al fatto che non eseguire alcun test ed è estremamente semplice da implementare. È sufficiente eseguire Lighthouse fino a 5 volte finché non viene superato il test.

Feedback

Hai trovato utile questa pagina?
Qual è stato l'aspetto migliore di questa pagina?
Mi ha aiutato a raggiungere i miei obiettivi
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Contiene le informazioni di cui avevo bisogno
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Contiene informazioni precise
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
I contenuti sono stati di facile lettura
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Altro
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
No
Qual è stato l'aspetto peggiore di questa pagina?
Non mi ha aiutato a raggiungere i miei obiettivi
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Mancano le informazioni di cui avevo bisogno
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Contiene informazioni imprecise
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
È stato difficile da leggere
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.
Altro
Grazie per il feedback. Se hai idee specifiche su come migliorare questa pagina, crea un problema.