Como acompanhar benchmarks do Google Benchmark C++ em CI

Everett Pompeii

Everett Pompeii


Agora que você aprendeu como fazer benchmark de código C++ com Google Benchmark, vamos ver como acompanhar esses benchmarks em CI. Benchmarking Contínuo é a prática de executar benchmarks em cada conjunto de mudanças para garantir que as alterações não introduzam regressões de desempenho. A maneira mais fácil de implementar o Benchmarking Contínuo com benchmarks Google Benchmark é usar o Bencher.

O que é o Bencher?

Bencher é um conjunto de ferramentas de benchmarking contínuas. Já teve algum impacto de regressão de desempenho nos seus usuários? Bencher poderia ter prevenido isso. Bencher permite que você detecte e previna regressões de desempenho antes que cheguem à produção.

  • Execute: Execute seus benchmarks localmente ou no CI usando suas ferramentas de benchmarking favoritas. O CLI bencher simplesmente envolve seu harness de benchmark existente e armazena seus resultados.
  • Rastreie: Acompanhe os resultados de seus benchmarks ao longo do tempo. Monitore, consulte e faça gráficos dos resultados usando o console web do Bencher baseado na branch de origem, testbed e medida.
  • Capture: Capture regressões de desempenho no CI. Bencher usa análises personalizáveis e de última geração para detectar regressões de desempenho antes que elas cheguem à produção.

Pelos mesmos motivos que os testes de unidade são executados no CI para prevenir regressões de funcionalidades, benchmarks deveriam ser executados no CI com o Bencher para prevenir regressões de desempenho. Bugs de desempenho são bugs!

Passos para o Bencher Cloud

  1. Crie uma conta no Bencher Cloud.
  2. Crie um token de API e adicione-o ao seu CI como um segredo.
  3. Crie um fluxo de trabalho para o seu CI, como GitHub Actions ou GitLab CI/CD.
  4. Instale o Bencher CLI no seu fluxo de trabalho CI.
  5. Execute seus benchmarks com o bencher run subcomando no seu fluxo de trabalho CI usando o adaptador cpp_google.

Passos para Bencher Self-Hosted

  1. Crie uma instância Bencher Self-Hosted.
  2. Crie uma conta em sua instância Bencher Self-Hosted.
  3. Crie um token de API e adicione-o ao seu CI como um segredo.
  4. Crie um fluxo de trabalho para o seu CI, como GitHub Actions ou GitLab CI/CD.
  5. Instale o Bencher CLI no fluxo de trabalho do seu CI. Certifique-se de que a versão do CLI corresponda à versão da sua instância Bencher Self-Hosted.
  6. Execute seus benchmarks com o bencher run subcomando no fluxo de trabalho do seu CI usando o adaptador cpp_google e configure a opção --host para a URL da sua instância Bencher Self-Hosted.

➕ C++ Google

O Adaptador C++ Google (cpp_google) espera a saída Google Benchmark no formato JSON (ou seja, --benchmark_format=json). A medida de latência (ou seja, nanossegundos (ns)) é coletada. Apenas a média (ou seja, valor) está disponível. Não existem valor_inferior e valor_superior.

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

Acompanhe seus benchmarks no CI

Alguma vez teve uma regressão de desempenho que afetou seus usuários? O Bencher poderia ter evitado que isso acontecesse com o benchmarking contínuo.

🤖 Este documento foi gerado automaticamente pelo OpenAI GPT-4. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.