De Chromium Chronicle #20: Benchmarking van testharnassen

Aflevering 20: door John Chen in Bellevue, WA (april 2021)
Vorige afleveringen

Snelheid is een van de vier kernprincipes van Chrome. Het toevoegen van benchmarks is een eenvoudige manier om prestatieregressies te voorkomen en de prestaties in de loop van de tijd te helpen verbeteren. Goede benchmarks hebben een snelle iteratiecyclus, kunnen prestatieregressies veel eerder detecteren dan UMA, en zijn uitstekend geschikt voor het meten van de prestaties van een nieuwe functie.

In het lab worden regelmatig benchmarks uitgevoerd. Wanneer een regressie wordt gevonden, vindt bisect automatisch de schuldige CL en wijst een bug toe aan de CL-eigenaar.

Chrome-benchmarks combineren reeksen webpagina-interacties (verhalen genoemd) met prestatiemetingen. Soortgelijke gevallen zijn gegroepeerd in benchmarkharnassen. Nieuwe benchmarks passen meestal in een van de bestaande harnassen :

  • Systeemgezondheid
  • Bezig met laden
  • Geheugen
  • Weergave
  • Stroom
  • Beginnen
  • V8-runtime
  • Media
  • WebRTC
  • druk op
  • Knipper prestatie

Het Telemetry-framework speelt opgenomen verhalen opnieuw af om gebruikersinteracties met Chrome te simuleren en verzamelt tegelijkertijd sporen die Chrome-activiteiten registreren. Nadat de verhalen zijn voltooid, voert het raamwerk verschillende prestatiestatistieken uit om de sporen te analyseren en prestatieresultaten te berekenen.

U kunt de meeste nieuwe prestatietestgevallen in Chrome behandelen door een nieuw verhaal toe te voegen, waarbij u een bestaande statistiek binnen een van de bestaande harnassen gebruikt. U kunt ook extra sporen verzamelen en meer statistieken toevoegen aan bestaande benchmarks of extra vlaggen doorgeven aan de browser.

Gebruik Blink Perf voor eenmalige koffers die niet in andere harnassen passen. In Blink Perf kunt u traceergebeurtenissen op eenmalige pagina's meten.

Houd uw benchmarkverhalen eenvoudig en neem alleen de minimale reeks interacties op die nodig zijn om uw scenario te voltooien. Als een testcase complex is, kan deze moeilijk te automatiseren zijn of kan deze onvolledig zijn.

Beperk uw tests tot het kleinste aantal dat de belangrijkste gebruiksscenario's dekt. De benchmarkinginfrastructuur is duur in onderhoud. Zie Chrome Speed ​​Devices voor een lijst met ondersteunde hardware.

Er is meer dan één manier om prestaties te meten. Op telemetrie gebaseerde benchmarks besturen Chrome vanuit een extern proces, en dit biedt niet altijd het benodigde controleniveau. Als alternatief zorgen op gtest gebaseerde benchmarks ervoor dat testcode hetzelfde proces deelt als Chrome-code. U kunt ook andere prestatietools overwegen, zoals het gebruik van UMA om de prestaties op de apparaten van gebruikers te meten in plaats van in het laboratorium.

Wilt u meer weten over Chrome-benchmarks? Neem contact op met telemetry@chromium.org.

Aanvullende bronnen

  • Krijg meer informatie over hoe u kunt beginnen met het schrijven van een nieuwe benchmark .
  • Heeft u meer hulp nodig bij het uitzoeken waar uw use case past ? Neem contact met ons op voordat u te ver gaat met het schrijven van de test.