Chromium Chronicle Nr. 20: Benchmarking-Testumgebung

Folge 20:von John Chen aus Bellevue, Washington (April 2021)
Vorherige Folgen

Geschwindigkeit ist eines der vier Grundprinzipien von Chrome. Das Hinzufügen von Benchmarks ist eine einfache Möglichkeit, Leistungsabfälle zu verhindern und die Leistung im Laufe der Zeit zu verbessern. Gute Benchmarks haben einen schnellen Iterationszyklus, können Leistungsabfälle viel früher erkennen als UMA und eignen sich hervorragend zum Messen der Leistung einer neuen Funktion.

Benchmarks werden regelmäßig im Labor durchgeführt. Wenn eine Regression gefunden wird, ermittelt bisect automatisch den fehlerhaften CL und weist dem Inhaber der Änderungsliste einen Fehler zu.

Chrome-Benchmarks kombinieren Abfolgen von Interaktionen mit Webseiten (sogenannte Stories) mit Leistungsmessungen. Ähnliche Fälle werden in Benchmarks zusammengefasst. Neue Benchmarks lassen sich normalerweise in einen der vorhandenen Nutzungssysteme integrieren:

  • Systemzustand
  • Wird geladen
  • Arbeitsspeicher
  • Rendering
  • Leistung
  • Einstieg
  • V8-Laufzeit
  • Medien
  • WebRTC
  • Presse
  • Blink Performance

Das Telemetry-Framework gibt aufgezeichnete Stories wieder, um Nutzerinteraktionen mit Chrome zu simulieren und gleichzeitig Traces zu erfassen, die Chrome-Aktivitäten aufzeichnen. Nach Abschluss der Stories führt das Framework verschiedene Leistungsmesswerte aus, um die Traces zu analysieren und die Leistungsergebnisse zu berechnen.

Sie können die meisten neuen Leistungstestfälle in Chrome abdecken, indem Sie eine neue Story hinzufügen und dabei einen vorhandenen Messwert innerhalb eines der vorhandenen Nutzungssysteme verwenden. Sie können auch zusätzliche Traces erfassen und vorhandenen Benchmarks weitere Messwerte hinzufügen oder zusätzliche Flags an den Browser übergeben.

Verwende Blink Perf für einmalige Fälle, die nicht in andere Schutzhüllen passen. In Blink Perf können Sie Trace-Ereignisse auf einmaligen Seiten messen.

Halten Sie Ihre Benchmark Storys einfach und fügen Sie nur den minimalen Satz von Interaktionen ein, der für Ihr Szenario erforderlich ist. Wenn ein Testlauf komplex ist, ist er möglicherweise schwer zu automatisieren oder instabil.

Beschränken Sie Ihre Tests auf die kleinste Anzahl, die die wichtigsten Anwendungsfälle abdeckt. Die Wartung der Benchmarking-Infrastruktur ist teuer. Eine Liste der unterstützten Hardware finden Sie unter Chrome Speed Devices (nur auf Englisch verfügbar).

Es gibt mehrere Möglichkeiten, die Leistung zu messen. Telemetriebasierte Benchmarks steuern Chrome über einen externen Prozess, was nicht immer die erforderliche Kontrolle bietet. Alternativ können gtest-basierte Benchmarks es dem Testcode ermöglichen, denselben Prozess wie Chrome-Code zu nutzen. Sie können auch andere Leistungstools in Betracht ziehen, z. B. UMA zur Leistungsmessung auf den Geräten der Nutzer statt im Labor zu verwenden.

Möchten Sie mehr über Chrome-Benchmarking erfahren? Senden Sie eine E-Mail an telemetry@chromium.org.

Weitere Ressourcen