Verwendung von Bencher zum Verfolgen von Benchmarks
Der einfachste Weg, Ihre Benchmarks zu verfolgen, ist der bencher run
CLI-Unterbefehl.
Sehen Sie sich die Übersicht zum Benchmarking für eine ausführlichere Erklärung an.
Dies ist ein Beispiel für einen bencher run
CLI-Unterbefehl zum Verfolgen von Benchmarks in einem passenderweise feature-branch
genannten Feature-Zweig:
bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
- Das Projekt muss bereits vorhanden sein. Setzen Sie das
--project
Flag oder dieBENCHER_PROJECT
Umgebungsvariable auf den Projekt-Slug oder UUID. (z. B.:--project save-walter-white
) - Das API-Token muss bereits vorhanden sein. Setzen Sie das
--token
Flag oder dieBENCHER_API_TOKEN
Umgebungsvariable auf das API-Token. (z. B.:--token ...
) - Optional: Setzen Sie das
--adapter
Flag oder dieBENCHER_ADAPTER
Umgebungsvariable auf den gewünschten Adapter-Namen. Wenn dies nicht gesetzt ist, wird dermagic
Adapter verwendet. Siehe Benchmark Harness Adapters für eine vollständige Übersicht. (z. B.:--adapter json
) - Es gibt mehrere Optionen zum Festlegen des Projektzweigs. Siehe Zweigauswahl für eine vollständige Übersicht.
- Verwenden Sie den aktuellen Zweig, wenn er bereits vorhanden ist. (z. B.:
--if-branch feature-branch
) - Erstellen Sie eine Klon der Zielzweig-Daten, wenn sie bereits vorhanden sind. (z. B.:
--else-if-branch main
) - Ansonsten erstellen Sie einen neuen Zweig mit dem Namen, der an
--if-branch
übergeben wurde, was in diesem Fallfeature-branch
wäre. (z. B.:--else-branch
)
- Verwenden Sie den aktuellen Zweig, wenn er bereits vorhanden ist. (z. B.:
- Optional: Setzen Sie das
--testbed
Flag oder dieBENCHER_TESTBED
Umgebungsvariable auf den Testbed-Slug oder UUID. Das Testbed muss bereits vorhanden sein. Wenn dies nicht gesetzt ist, wird das Standardlocalhost
Testbed verwendet. (z. B.:--testbed phoenix
) - Setzen Sie den Befehl so, dass er fehlschlägt, wenn ein Alert generiert wird. Damit ein Alert generiert wird, muss bereits eine Schwelle existieren. (z. B.:
--err
) - Führen Sie Ihre Benchmarks aus und erstellen Sie einen Bericht aus den Ergebnissen. (z. B.:
"bencher mock"
)
Relatives Benchmarking
Relatives Benchmarking führt einen direkten Vergleich von zwei Commits durch.
Dies kann nützlich sein, wenn man mit lärmenden CI/CD-Umgebungen arbeitet,
wo die verfügbaren Ressourcen zwischen den Durchläufen stark variieren können.
Dies ist ein Beispiel für einen bencher run
CLI-Unterbefehl zur Durchführung des relativen Benchmarking auf einem Feature-Zweig, der passenderweise feature-branch
heißt:
git checkout feature-branch
export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)
git checkout main
bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"
git checkout feature-branch
bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95
bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
- Wechseln Sie zum Feature-Zweig. (z. B.:
feature-branch
) - Erstellen Sie eine Umgebungsvariable, die der Name des Feature-Zweigs in Verbindung mit der kurzen Git-Commit-ID ist. Dies ist wichtig! Es garantiert, dass für jeden Durchlauf ein neuer Zweig erstellt wird.
- Wechseln Sie zum Zielzweig. (z. B.:
main
) - Führen Sie
bencher run
für den Zielzweig aus:- Der angegebene Zweig wird noch nicht existieren. (z. B.:
--if-branch "$FEATURE_BRANCH"
) - Es wird also erstellt. (z. B.:
--else-branch
) - Führen Sie die Benchmarks dreimal aus. (z. B.:
--iter 3
)
- Der angegebene Zweig wird noch nicht existieren. (z. B.:
- Wechseln Sie zum Feature-Zweig. (z. B.:
feature-branch
) - Erstellen Sie eine Schwelle für den Feature-Zweig:
- Die Metrikart für die Benchmarks ist die Latenz. (z. B.:
--metric-kind latency
) - Der Zweig ist der Feature-Zweig mit der angehängten Git-Commit-ID. (z. B.:
--branch "$FEATURE_BRANCH"
) - Das Testbed läuft lokal. (z. B.:
--testbed localhost
) - Es gibt weniger als 30 Metriken, verwenden Sie einen Student’s t-Test. (z. B.:
--test t
) - Setzen Sie eine rechte Seite Grenze von 95,0 %, da eine größere Latenz auf eine Leistungsregression hinweist. (z. B.:
--right-side 0.95
)
- Die Metrikart für die Benchmarks ist die Latenz. (z. B.:
- Führen Sie
bencher run
für den Feature-Zweig aus:- Der Zweig wird existieren, da er gerade erstellt wurde. (z. B.:
--if-branch "$FEATURE_BRANCH"
) - Führen Sie die Tests dreimal aus. (z. B.:
--iter 3
) - Fassen Sie alle drei Metriken in den minimalen Wert zusammen. (z. B.:
--fold min
) - Setzen Sie den Befehl so, dass er fehlschlägt, wenn ein Alert durch die Schwelle generiert wird. (z. B.:
--err
)
- Der Zweig wird existieren, da er gerade erstellt wurde. (z. B.:
🐰 Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Bencher zum Verfolgen von Benchmarks verwenden können! 🎉