Chromium Chronicle 20: exercices d'analyse comparative

Épisode 20:de John Chen à Bellevue, Washington (avril 2021)
Épisodes précédents

La rapidité est l'un des quatre principes fondamentaux de Chrome. L'ajout de benchmarks est un moyen simple d'éviter les régressions de performances et d'améliorer les performances au fil du temps. Les bons benchmarks ont un cycle d'itération rapide, peuvent détecter les régressions de performances beaucoup plus tôt que l'UMA et sont parfaits pour mesurer les performances d'une nouvelle fonctionnalité.

Des analyses comparatives sont régulièrement effectuées dans l'atelier. Lorsqu'une régression est détectée, bisect trouve automatiquement la CL responsable et attribue un bug au propriétaire de la CL.

Les analyses comparatives de Chrome combinent des séquences d'interactions avec des pages Web (appelées "stories") et des mesures des performances. Les cas similaires sont regroupés en harnais de benchmark. Les nouveaux benchmarks s'inscrivent généralement dans l'un des éléments existants:

  • État du système
  • Chargement…
  • Mémoire
  • Affichage
  • Alimentation
  • Démarrage
  • Environnement d'exécution V8
  • Multimédia
  • WebRTC
  • Presse
  • Blink Perf

Le framework Telemetry relit les histoires enregistrées pour simuler les interactions des utilisateurs avec Chrome, tout en collectant les traces qui enregistrent les activités Chrome. Une fois les histoires terminées, le framework exécute diverses métriques de performances pour analyser les traces et calculer les résultats.

Vous pouvez couvrir la plupart des nouveaux scénarios de test de performances dans Chrome en ajoutant une nouvelle histoire, en utilisant une métrique existante de l'un des scénarios existants. Vous pouvez également collecter des traces supplémentaires et ajouter des métriques aux benchmarks existants ou transmettre des indicateurs supplémentaires au navigateur.

Utilisez Blink Perf pour les cas ponctuels qui ne conviennent pas à d'autres harnais. Avec Blink Perf, vous pouvez mesurer les événements de trace sur des pages ponctuelles.

Faites en sorte que vos histoires de benchmark soient simples et n'incluez que l'ensemble minimal d'interactions nécessaire pour mener à bien votre scénario. Si un scénario de test est complexe, il peut être difficile à automatiser ou irrégulier.

Limitez vos tests au plus petit nombre de tests qui couvre les cas d'utilisation les plus importants. L'infrastructure d'analyse comparative est coûteuse à gérer. Consultez la page Appareils de vitesse Chrome pour obtenir la liste des composants matériels compatibles.

Il existe plusieurs façons de mesurer les performances. Les benchmarks basés sur la télémétrie contrôlent Chrome à partir d'un processus externe, ce qui n'offre pas toujours le niveau de contrôle nécessaire. Les benchmarks basés sur gtest permettent également au code de test de partager le même processus que le code Chrome. Vous pouvez également envisager d'autres outils de performances, tels que l'utilisation d'UMA pour mesurer les performances sur les appareils des utilisateurs plutôt que dans l'atelier.

Vous voulez en savoir plus sur l'analyse comparative de Chrome ? Envoyez un e-mail à l'adresse telemetry@chromium.org.

Ressources supplémentaires