Übersicht über das Benchmarking


Die meisten Benchmark-Ergebnisse sind flüchtig. Sie verschwinden, sobald Ihr Terminal seine Scrollback-Grenze erreicht hat. Einige Benchmark-Schleifen ermöglichen es Ihnen, Ergebnisse zu speichern, 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, Ihre Benchmarks zu verfolgen, ist das bencher run CLI-Unterkommando. Es umfasst Ihre bestehende Benchmark-Schleifen-Ausgabe und erzeugt einen Bericht. Dieser Bericht wird dann an den Bencher-API-Server gesendet, wo die Benchmark-Schleifen-Ausgabe mit einem Benchmark-Schleifen-Adapter geparst wird. Der Benchmark-Schleifen-Adapter erkennt alle vorhandenen Benchmarks und ihre entsprechenden Metriken. Diese Benchmarks und Metriken werden dann zusammen mit dem Bericht gespeichert. Wenn ein Schwellenwert gesetzt ist, dann werden die neuen Metriken mit den historischen Metriken für jeden Benchmark, der im Bericht vorhanden ist, verglichen. Wenn eine Regression erkannt wird, wird ein Alert generiert.

Von nun an werden wir Ihre “Benchmarks” als “Performance-Regressionstests” bezeichnen, um Verwirrungen zu vermeiden.

Benchmarks

Ein Benchmark ist ein benannter Performance-Regressionstest. Wenn der Performance-Regressionstest neu für Bencher ist, dann wird automatisch ein Benchmark erstellt. Andernfalls wird der Name des Performance-Regressionstests als eindeutiger Bezeichner für den Benchmark verwendet.

Seien Sie vorsichtig, wenn Sie den Namen Ihrer Performance-Regressionstests ändern. Sie müssen den Benchmark in Bencher manuell umbenennen, um diesen neuen Namen zu matchen. Andernfalls wird der umbenannte Performance-Regressionstest als neuer Benchmark angesehen. Diese gleiche Warnung gilt auch für das Verschieben einiger Performance-Regressionstests. Abhängig von der Benchmark-Schleife kann der Pfad zum Performance-Regressionstest ein Teil seines Namens sein.

Die einzige Ausnahme von der oben genannten Einschränkung ist das Ignorieren eines Benchmarks. Siehe Unterdrückung von Alerts für eine vollständige Übersicht.

Metriken

Eine Metrik ist ein einzelnes, zeitspezifisches Ergebnis eines Performance-Regressionstests. Für eine einzelne Metrik können bis zu drei Messungen erfasst 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 Messungen erfasst werden, wird durch den Benchmark-Schleifen-Adapter bestimmt.

Art der Metrik

Die Art der Metrik ist die Maßeinheit für eine Metrik. Standardmäßig starten alle Projekte mit einer Latenz und Durchsatz Metrik-Art mit den Einheiten Nanosekunden (ns) und Operationen / Sekunde (ops/s) jeweils. Die Art der Metrik wird durch den Benchmark-Schleifen-Adapter bestimmt.


Bericht

Ein Bericht ist eine Sammlung von Benchmarks und ihren Metriken für einen bestimmten Zweig und Testbeet. Berichte werden am häufigsten mit dem bencher run CLI-Unterkommando erzeugt. Siehe wie man Performance-Regressionstests verfolgt für eine vollständige Übersicht.

Zweig

Ein Zweig ist die git-Referenz, die beim Erstellen eines Berichts verwendet wird (d. h. Branch-Name oder Tag). Standardmäßig starten alle Projekte mit einem main-Zweig. Wenn das bencher run CLI-Unterkommando verwendet wird, ist main der Standardzweig, wenn kein anderer angegeben ist. Siehe Zweigauswahl für eine vollständige Übersicht.

Testbett

Ein Testbett ist der Name der Testumgebung, die beim Erstellen eines Berichts verwendet wird. Standardmäßig starten alle Projekte mit einem localhost-Testbett. Wenn das bencher run CLI-Unterkommando verwendet wird, ist localhost das Standardtestbett, wenn keines angegeben ist.



🐰 Glückwunsch! Sie haben alles über das Verfolgen von Benchmarks Performance-Regressionstests gelernt! 🎉


Weitermachen: bencher run CLI-Unterkommando ➡

🤖 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: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Wed, March 27, 2024 at 7:50:00 AM UTC