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.

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.
  • 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.

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 Benchmarks Performance-Regressions-Tests gelernt! 🎉


Weiter: bencher run CLI Unterbefehl ➡

🤖 Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


Published: Sat, August 12, 2023 at 4:07:00 PM UTC | Last Updated: Thu, October 10, 2024 at 7:50:00 AM UTC