Como rastrear os tempos de compilação do Rust em CI

Everett Pompeii

Everett Pompeii


Os tempos de compilação podem ser uma parte significativa do seu tempo de build, especialmente em Rust. Benchmarking Contínuo é a prática de executar benchmarks em cada conjunto de alterações para garantir que as mudanças não introduzam regressões de desempenho. Você pode tratar os tempos de compilação como um benchmark e monitorá-los no CI para identificar compilações lentas. A maneira mais fácil de implementar o Benchmarking Contínuo para tempos de compilação de Rust é usar o Bencher.

O que é 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. Compile seu código Rust com o subcomando bencher run em seu fluxo de trabalho de CI usando a opção --build-time com o adaptador json.

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. Compile seu código Rust com o subcomando bencher run em seu fluxo de trabalho de CI usando a opção --build-time com o adaptador json e configurando a opção --host para a URL da sua instância do Bencher Self-Hosted.

⏱️ Build Time

O subcomando de CLI bencher run pode ser usado para rastrear o tempo de build (ou seja, tempo de compilação) dos seus entregáveis com a flag --build-time. Nos bastidores, bencher run produz os resultados como Bencher Metric Format (BMF) JSON. Portanto, é uma boa prática usar explicitamente o adaptador json. Para mais detalhes, veja como rastrear o tempo de build.

A Medida build-time (ou seja, segundos (s)) é coletada. Apenas o valor do tempo de build (ou seja, value) está disponível. Nem lower_value nem upper_value são coletados. A Medida build-time não é criada por padrão para todos os Projetos. No entanto, quando você usa a flag --build-time, esta Medida será criada automaticamente para o seu Projeto.

Terminal window
bencher run --build-time --adapter json "cargo build --release"

Track your benchmarks in CI

Have you ever had a performance regression impact your users? Bencher could have prevented that from happening with continuous benchmarking.

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