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 localhost \
--err \
"bencher mock"`
  1. Das Projekt muss bereits vorhanden sein. Setzen Sie das --project Flag oder die BENCHER_PROJECT Umgebungsvariable auf den Projekt-Slug oder UUID. (z. B.: --project save-walter-white)
  2. Das API-Token muss bereits vorhanden sein. Setzen Sie das --token Flag oder die BENCHER_API_TOKEN Umgebungsvariable auf das API-Token. (z. B.: --token ...)
  3. Optional: Setzen Sie das --adapter Flag oder die BENCHER_ADAPTER Umgebungsvariable auf den gewünschten Adapter-Namen. Wenn dies nicht gesetzt ist, wird der magic Adapter verwendet. Siehe Benchmark Harness Adapters für eine vollständige Übersicht. (z. B.: --adapter json)
  4. Es gibt mehrere Optionen zum Festlegen des Projektzweigs. Siehe Zweigauswahl für eine vollständige Übersicht.
    1. Verwenden Sie den aktuellen Zweig, wenn er bereits vorhanden ist. (z. B.: --if-branch feature-branch)
    2. Erstellen Sie eine Klon der Zielzweig-Daten, wenn sie bereits vorhanden sind. (z. B.: --else-if-branch main)
    3. Ansonsten erstellen Sie einen neuen Zweig mit dem Namen, der an --if-branch übergeben wurde, was in diesem Fall feature-branch wäre. (z. B.: --else-branch)
  5. Optional: Setzen Sie das --testbed Flag oder die BENCHER_TESTBED Umgebungsvariable auf den Testbed-Slug oder UUID. Das Testbed muss bereits vorhanden sein. Wenn dies nicht gesetzt ist, wird das Standard localhost Testbed verwendet. (z. B.: --testbed localhost)
  6. 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)
  7. 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)
export BENCHER_API_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc
git checkout main
bencher run \
--project save-walter-white \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--testbed localhost \
--iter 3 \
"bencher mock"
git checkout feature-branch
bencher threshold create \
--project save-walter-white \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--measure latency \
--test t \
--upper-boundary 0.95
bencher run \
--project save-walter-white \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--iter 3 \
--fold min \
--err \
"bencher mock"
  1. Wechseln Sie zum Feature-Zweig. (z. B.: feature-branch)
  2. 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.
  3. Wechseln Sie zum Zielzweig. (z. B.: main)
  4. Führen Sie bencher run für den Zielzweig aus:
    1. Der angegebene Zweig wird noch nicht existieren. (z. B.: --if-branch "$FEATURE_BRANCH")
    2. Es wird also erstellt. (z. B.: --else-branch)
    3. Führen Sie die Benchmarks dreimal aus. (z. B.: --iter 3)
  5. Wechseln Sie zum Feature-Zweig. (z. B.: feature-branch)
  6. Erstellen Sie eine Schwelle für den Feature-Zweig:
    1. Der Zweig ist der Feature-Zweig mit der angehängten Git-Commit-ID. (z. B.: --branch "$FEATURE_BRANCH")
    2. Das Testbed läuft lokal. (z. B.: --testbed localhost)
    3. Die Metrikart für die Benchmarks ist die Latenz. (z. B.: --measure latency)
    4. Es gibt weniger als 30 Metriken, verwenden Sie einen Student’s t-Test. (z. B.: --test t)
    5. Setzen Sie eine rechte Seite Grenze von 95,0 %, da eine größere Latenz auf eine Leistungsregression hinweist. (z. B.: --upper-boundary 0.95)
  7. Führen Sie bencher run für den Feature-Zweig aus:
    1. Der Zweig wird existieren, da er gerade erstellt wurde. (z. B.: --branch "$FEATURE_BRANCH")
    2. Führen Sie die Tests dreimal aus. (z. B.: --iter 3)
    3. Fassen Sie alle drei Metriken in den minimalen Wert zusammen. (z. B.: --fold min)
    4. Setzen Sie den Befehl so, dass er fehlschlägt, wenn ein Alert durch die Schwelle generiert wird. (z. B.: --err)


🐰 Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Bencher zum Verfolgen von Benchmarks verwenden können! 🎉


Fügen Sie Bencher zu GitHub Actions hinzu ➡

Fügen Sie Bencher zu GitLab CI/CD hinzu ➡

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