Bencher Bare Metal Schnellstart
Was ist Bencher?
Bencher ist eine Suite von Tools für kontinuierliches Benchmarking. Hatten Sie jemals eine Performance Regression, die Ihre Nutzer beeinflusste? Bencher hätte das verhindern können. Bencher ermöglicht es Ihnen, Leistungsregressionen zu erkennen und zu verhindern, bevor sie gemergt werden.
- Ausführen: Führen Sie Ihre Benchmarks lokal oder in CI mit exakt denselben Bare-Metal-Runnern und Ihren bevorzugten Benchmarking-Tools aus. Das
bencherCLI orchestriert die Ausführung Ihrer Benchmarks auf Bare Metal und speichert die Ergebnisse. - Verfolgen: Verfolgen Sie die Ergebnisse Ihrer Benchmarks im Laufe der Zeit. Überwachen, abfragen und grafisch darstellen der Ergebnisse mit der Bencher Web Konsole auf Basis des Quellzweigs, Testbetts und Maßnahme.
- Auffangen: Fangen Sie Leistungsregressionen lokal oder in CI mit exakt derselben Bare-Metal-Hardware ab. Bencher verwendet modernste, anpassbare Analysen, um Leistungsregressionen zu erkennen, bevor sie gemergt werden.
Aus denselben Gründen, warum Unit Tests laufen, um Feature Regressionen zu verhindern, sollten Benchmarks mit Bencher ausgeführt werden, um Leistungsregressionen zu verhindern. Performance-Bugs sind Fehler!
bencher CLI installieren
Wählen Sie Ihr Betriebssystem aus und führen Sie den bereitgestellten Befehl aus, um die bencher CLI zu installieren.
Für weitere Details siehe die bencher CLI-Installation Dokumentation.
⠀curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcurl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcargo install --git https://github.com/bencherdev/bencher --branch main --locked --force bencher_clipowershell -c "irm https://bencher.dev/download/install-cli.ps1 | iex"⠀Jetzt lassen Sie uns überprüfen, ob Sie die bencher CLI installiert haben. Führen Sie aus:
bencher --versionbencher --versionbencher --versionbencher --versionSie sollten sehen:
bencher 0.6.2Ein Projekt erstellen
Bevor Sie ein Benchmark-Image pushen können, benötigen Sie ein Bencher-Projekt.
Der einfachste Weg, eines zu erstellen, ist den bencher run CLI-Unterbefehl
mit dem bencher mock Unterbefehl auszuführen. Führen Sie aus:
bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"Dies erstellt ein neues Projekt auf Bencher Cloud.
Schauen Sie sich die View report-URL in der Ausgabe an.
Ihr Projekt-Slug ist das Pfadsegment nach /perf/ in der URL.
Wenn die URL beispielsweise lautet:
https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54dann ist Ihr Projekt-Slug my-project-abc1234.
Sie werden diesen Projekt-Slug in den nächsten Schritten benötigen.
Ihr Benchmark-Image pushen
Bencher Bare Metal führt Benchmarks aus, die als OCI-Container-Images auf dedizierter Hardware verpackt sind.
Für diesen Schnellstart verwenden wir das bencher CLI Docker-Image als unser Benchmark-Image.
Es wird kein benutzerdefiniertes Image benötigt.
Ziehen Sie zunächst das bencher CLI-Image aus der GitHub Container Registry.
Führen Sie aus:
docker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestTaggen Sie als Nächstes das Image für die Bencher OCI-Registry um.
Ersetzen Sie YOUR_PROJECT_SLUG durch den Projekt-Slug aus dem vorherigen Schritt:
docker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestMelden Sie sich dann bei der Bencher OCI-Registry an und pushen Sie das Image:
docker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestWeitere Details zum Erstellen Ihres eigenen benutzerdefinierten Images finden Sie in der Image-Dokumentation.
Ihre Bare Metal Benchmarks verfolgen
Sie sind jetzt bereit, Ihre Benchmark-Ergebnisse auf dedizierter Hardware zu verfolgen!
Dazu verwenden Sie den bencher run CLI-Unterbefehl,
um Ihre Benchmarks auszuführen und die Ergebnisse zu erfassen.
Ersetzen Sie YOUR_PROJECT_SLUG durch den Projekt-Slug aus den vorherigen Schritten und führen Sie aus:
bencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonWir verwenden den bencher noise-Unterbefehl als unseren Benchmark-Befehl, um einige Beispieldaten zu generieren.
Er misst, wie verrauscht Ihre Benchmark-Umgebung ist.
Wenn wir die Option --format json verwenden, werden die Ergebnisse im Bencher Metric Format (BMF) ausgegeben.
Wenn alles wie erwartet funktioniert, sollte das Ende der Ausgabe etwa so aussehen:
View report: https://bencher.dev/perf/project-abc4567-wxyz123456789/reports/29d61b7c-5d80-4ac2-a118-f80bc5de431b
View results:- bencher::noise::cache_jitter (Cache Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=6bed122a-b0d1-42e6-93c1-8736a910ec9c&measures=fdee350f-f53a-44bc-af7c-2f4c51415ea8&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::composite (Noise Score): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=a5d0aea8-666f-4554-958a-9ad8acf1a20d&measures=995e8a26-58ee-46c4-8ce7-d0162b7d9d86&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::compute_jitter (Compute Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=489b1d60-5dbd-43cd-bb96-ba50bcba648a&measures=8b715d47-ed42-4ac5-a380-4fe4143aa159&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::io_jitter (I/O Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=0a3da391-2fe3-40ec-8a10-983e81231af8&measures=b34f6fd4-60ff-4866-a7a4-60396aab976a&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
Claim this project: https://bencher.dev/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4Sie können nun die Ergebnisse für jeden Ihrer Benchmarks im Browser ansehen.
Klicken Sie auf die Links unter View results oder kopieren Sie sie.
Um diese Ergebnisse zu beanspruchen, klicken Sie auf den Claim this project-Link oder kopieren Sie ihn in Ihren Browser.
🐰 Glückwunsch! Sie haben Ihre ersten Bare Metal Benchmark-Ergebnisse verfolgt! 🎉