Wie man Google Benchmark C++ Benchmarks in CI verfolgt

Everett Pompeii

Everett Pompeii


Now, da Sie wie man C++ Code mit Google Benchmark misst, sehen wir uns an, wie man diese Benchmarks im CI verfolgt. Kontinuierliches Benchmarking ist die Praxis, Benchmarks bei jedem Änderungssatz durchzuführen, um sicherzustellen, dass die Änderungen keine Leistungseinbußen verursachen. Der einfachste Weg, kontinuierliches Benchmarking mit Google Benchmark-Benchmarks umzusetzen, ist die Verwendung von Bencher.

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 bencher CLI 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!

Schritte für Bencher Cloud

  1. Erstellen Sie ein Bencher Cloud-Konto.
  2. Erstellen Sie ein API-Token und fügen Sie es Ihrem CI als Geheimnis hinzu.
  3. Erstellen Sie einen Workflow für Ihr CI, wie GitHub Actions oder GitLab CI/CD.
  4. Installieren Sie die Bencher CLI in Ihrem CI-Workflow.
  5. Führen Sie Ihre Benchmarks mit dem bencher run Unterbefehl in Ihrem CI-Workflow mit dem cpp_google Adapter aus.

Schritte für die Bencher-Self-Hosted

  1. Erstellen Sie eine Bencher Self-Hosted Instanz.
  2. Erstellen Sie ein Konto auf Ihrer Bencher Self-Hosted Instanz.
  3. Erstellen Sie ein API-Token und fügen Sie es als Geheimnis zu Ihrem CI hinzu.
  4. Erstellen Sie einen Workflow für Ihr CI, wie GitHub Actions oder GitLab CI/CD.
  5. Installieren Sie die Bencher-CLI in Ihrem CI-Workflow. Stellen Sie sicher, dass die CLI-Version mit der Version Ihrer Bencher Self-Hosted Instanz übereinstimmt.
  6. Führen Sie Ihre Benchmarks mit dem bencher run Unterbefehl in Ihrem CI-Workflow aus, indem Sie den cpp_google Adapter verwenden und die Option --host auf die URL Ihrer Bencher Self-Hosted Instanz setzen.

➕ C++ Google

Der C++ Google Adapter (cpp_google) erwartet Ausgaben von Google Benchmark im JSON-Format (d.h. --benchmark_format=json). Die latency Messung (d.h. Nanosekunden (ns)) wird erfasst. Nur der Durchschnittswert (d.h. value) ist verfügbar. Es gibt keinen lower_value und keinen upper_value.

Terminal window
bencher run --adapter cpp_google "make benchmarks --benchmark_format=json"

Ihre nächste Performance-Regression kündigt sich nicht selbst an

Entdecken Sie es im Review, oder zahlen Sie dafür in der Produktion.

🤖 Dieses Dokument wurde automatisch von KI übersetzt. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.