The Chromium Chronicle n. 20: test di benchmarking

Episodio 20: di John Chen a Bellevue, WA (aprile 2021)
Puntate precedenti

La velocità è uno dei quattro principi fondamentali di Chrome. L'aggiunta di benchmark è un modo semplice per evitare regressioni e migliorare le prestazioni nel tempo. I benchmark efficaci hanno un ciclo di iterazione rapido, sono in grado di rilevare le regressioni delle prestazioni molto prima dell'UMA e sono ideali per misurare le prestazioni di una nuova funzionalità.

I benchmark vengono eseguiti regolarmente nel lab. Quando viene rilevata una regressione, bisect trova automaticamente l'elenco a discesa responsabile e assegna un bug al proprietario dell'elenco di controllo.

I benchmark di Chrome combinano sequenze di interazioni sulle pagine web (dette storie) con misurazioni del rendimento. I casi simili sono raggruppati in modelli di benchmark. In genere, nuovi benchmark si adattano a uno dei cablaggi esistenti:

  • Integrità del sistema
  • Caricamento in corso…
  • Memoria
  • Rendering
  • Alimentazione
  • Avvio
  • Runtime V8
  • Contenuti multimediali
  • WebRTC
  • Interviste
  • Prestazioni lampeggianti

Il framework Telemetry riproduce le storie registrate per simulare le interazioni degli utenti con Chrome, raccogliendo al contempo le tracce che registrano le attività di Chrome. Al termine delle storie, il framework esegue varie metriche delle prestazioni per analizzare le tracce e calcolare i risultati delle prestazioni.

Puoi gestire la maggior parte dei nuovi scenari di test delle prestazioni in Chrome aggiungendo una nuova storia, utilizzando una metrica esistente all'interno di uno degli strumenti esistenti. Puoi anche raccogliere ulteriori tracce e aggiungere altre metriche ai benchmark esistenti o passare ulteriori flag al browser.

Usa Blink Perf per custodie monouso che non possono essere utilizzate con altre imbragature. In Blink Perf, puoi misurare gli eventi di traccia nelle pagine una tantum.

Utilizza storie di benchmark semplici e includi solo l'insieme minimo di interazioni necessario per completare lo scenario. Se uno scenario di test è complesso, potrebbe essere difficile da automatizzare o potrebbe essere irregolare.

Limita i test al numero minimo che copre i casi d'uso più importanti. L'infrastruttura di benchmarking è costosa da gestire. Consulta la pagina Dispositivi Chrome Speed per un elenco di hardware supportati.

Esistono diversi modi per misurare il rendimento. I benchmark basati sulla telemetria controllano Chrome da un processo esterno e questo non offre sempre il livello di controllo necessario. In alternativa, i benchmark basati su gtest consentono al codice di test di condividere lo stesso processo del codice di Chrome. Potresti anche prendere in considerazione altri strumenti per le prestazioni, come l'utilizzo di UMA per misurare le prestazioni sui dispositivi degli utenti anziché nel lab.

Vuoi saperne di più sul benchmarking di Chrome? Contatta telemetry@chromium.org.

Risorse aggiuntive