Benchmark-Übersicht
Most Benchmark-Ergebnisse sind flüchtig. Sie verschwinden, sobald Ihr Terminal die Scrollback-Grenze erreicht hat. Einige Benchmark-Harnesses ermöglichen es Ihnen, Ergebnisse zu cachen, aber die meisten tun dies nur lokal. Bencher ermöglicht es Ihnen, Ihre Benchmarks sowohl von lokalen als auch von CI-Läufen zu verfolgen und mit historischen Ergebnissen zu vergleichen.
Der einfachste Weg, um Ihre Benchmarks zu verfolgen, ist das bencher run
CLI-Unterkommando.
Es umschließt die Ausgabe Ihrer vorhandenen Benchmark-Harness und erzeugt einen Report.
Dieser Report wird dann an den Bencher API-Server gesendet,
wo die Benchmark-Harness-Ausgabe mit einem Benchmark-Harness-Adapter geparst wird.
Der Benchmark-Harness-Adapter erkennt alle vorhandenen Benchmarks und deren entsprechende Metriken.
Diese Benchmarks und Metriken werden dann zusammen mit dem Report gespeichert.
Wenn ein Schwellenwert festgelegt ist,
werden die neuen Metriken mit den historischen Metriken für jedes im Report vorhandene Benchmark verglichen.
Wenn ein Rückschritt festgestellt wird, wird eine Warnung generiert.
Von jetzt an werden wir Ihre “Benchmarks” als “Leistungsregressionstests” bezeichnen, um Verwirrung zu vermeiden.
Benchmark
Ein Benchmark ist ein benannter Leistungstest zur Regressionserkennung. Falls der Leistungstest zur Regressionserkennung Bencher unbekannt ist, wird automatisch ein Benchmark erstellt. Andernfalls wird der Name des Leistungstests zur Regressionserkennung als eindeutiger Identifikator für den Benchmark verwendet.
Seien Sie vorsichtig, wenn Sie den Namen Ihrer Leistungstests zur Regressionserkennung ändern. Sie müssen den Benchmark in Bencher manuell umbenennen, um mit diesem neuen Namen übereinzustimmen. Andernfalls wird der umbenannte Leistungstest zur Regressionserkennung als neuer Benchmark betrachtet. Diese Vorsichtsmaßnahme gilt auch für das Verschieben einiger Leistungstests zur Regressionserkennung. Je nach Benchmark-Framework kann der Pfad zum Leistungstest zur Regressionserkennung Teil seines Namens sein.
Die einzige Ausnahme dieses Vorbehalts ist das Ignorieren eines Benchmarks. Siehe Unterdrückung von Warnungen für einen vollständigen Überblick.
Metrik
Eine Metrik ist ein einzelnes, zeitpunktbezogenes Ergebnis eines Leistungsregressionstests.
Für eine einzelne Metrik können bis zu drei Werte gesammelt werden: value
, lower_value
und upper_value
.
Der value
ist für alle Metriken erforderlich, während der lower_value
und upper_value
unabhängig optional sind.
Welche Werte gesammelt werden, wird durch den Benchmark-Harness-Adapter bestimmt.
Messung
Eine Messung ist die Maßeinheit für eine Metrik.
Standardmäßig beginnen alle Projekte mit einer Latenz
- und Durchsatz
-Messung
mit den Einheiten Nanosekunden (ns)
und Operationen / Sekunde (ops/s)
bzw.
Die Messung wird durch den Benchmark-Harness-Adapter bestimmt.
Bericht
Ein Bericht ist eine Sammlung von Benchmarks und deren Metriken für einen bestimmten Branch und ein Testbed.
Berichte werden meistens mit dem bencher run
CLI-Unterbefehl erstellt.
Sehen Sie sich an, wie Sie Leistungsregressionstests verfolgen können, um einen vollständigen Überblick zu erhalten.
Branch
Ein Branch ist der git
-Verweis, der beim Ausführen eines Reports verwendet wird (d. h. Branch-Name oder Tag).
Standardmäßig beginnen alle Projekte mit einem main
Branch.
Beim Verwenden des bencher run
CLI-Unterbefehls
ist main
der Standard-Branch, falls keiner angegeben wird.
Siehe Branch-Auswahl für einen vollständigen Überblick.
Head
Der Head eines Branches ist die neueste Instanz des Branches. Er verweist auf den neuesten Startpunkt, falls vorhanden. Jedes Mal, wenn ein Branch einen neuen Startpunkt erhält, bekommt er einen neuen Head. Siehe Branch-Auswahl für einen vollständigen Überblick.
Startpunkt
Ein Branch kann einen Startpunkt haben.
Ein Startpunkt ist ein anderer Branch zu einer spezifischen Version (und git
Hash, falls verfügbar).
Historische Metriken und optional Schwellenwerte werden vom Startpunkt übernommen.
Eine vollständige Übersicht finden Sie unter Branch-Auswahl.
Testumgebung
Eine Testumgebung ist der Name der Testumgebung, die beim Ausführen eines Berichts verwendet wird. Standardmäßig starten alle Projekte mit einer localhost
Testumgebung. Wenn der bencher run
CLI-Unterbefehl verwendet wird, ist localhost
die Standard-Testumgebung, falls keine angegeben wird.
Schwelle
Eine Schwelle wird verwendet, um Leistungsregressionen zu erkennen. Eine Schwelle wird einer einzigartigen Kombination aus Zweig, Testumgebung und Maß zugewiesen. Siehe Schwellenwerte für einen vollständigen Überblick.
Test
Ein Test wird von einem Schwellenwert verwendet, um Leistungsrückschritte zu erkennen. Die Kombination aus einem Test und seinen Parametern wird als Modell bezeichnet. Siehe Schwellenwerte für einen vollständigen Überblick.
Modell
Ein Modell ist die Kombination aus einem Test und seinen Parametern für einen Schwellenwert. Ein Modell muss eine Untere Grenze, eine Obere Grenze oder beides haben.
- Untere Grenze
- Eine Untere Grenze wird verwendet, wenn ein kleinerer Wert auf eine Leistungsverschlechterung hinweisen würde,
wie z. B. bei der
Throughput
-Messung.
- Eine Untere Grenze wird verwendet, wenn ein kleinerer Wert auf eine Leistungsverschlechterung hinweisen würde,
wie z. B. bei der
- Obere Grenze
- Eine Obere Grenze wird verwendet, wenn ein größerer Wert auf eine Leistungsverschlechterung hinweisen würde,
wie z. B. bei der
Latency
-Messung.
- Eine Obere Grenze wird verwendet, wenn ein größerer Wert auf eine Leistungsverschlechterung hinweisen würde,
wie z. B. bei der
Jede Grenze wird verwendet, um ein Grenzwertlimit zu berechnen. Dann wird jede neue Metrik gegen jedes Grenzwertlimit geprüft. Ein Alarm wird erzeugt, wenn eine neue Metrik unter einem Unteren Grenzwertlimit oder über einem Oberen Grenzwertlimit liegt. Siehe Schwellenwerte für einen vollständigen Überblick.
Grenzenwert
Ein Grenzenwert ist der Wert, der aus einer unteren oder oberen Grenze berechnet wird. Er wird verwendet, um ihn mit einem neuen Metrikwert zu vergleichen. Eine Warnmeldung wird generiert, wenn ein neuer Metrikwert unter einem unteren Grenzenwert oder über einem oberen Grenzenwert liegt. Siehe Schwellenwerte für einen vollständigen Überblick.
Warnung
Eine Warnung wird erzeugt, wenn eine neue Metrik einen Test nicht besteht, indem sie unter einem unteren Grenzwert oder über einem oberen Grenzwert liegt. Siehe Schwellenwerte für einen vollständigen Überblick.
🐰 Glückwunsch! Sie haben alles über das Verfolgen von
BenchmarksPerformance-Regressions-Tests gelernt! 🎉