Como rastrear benchmarks do libtest bench do Rust em CI
Everett Pompeii
Agora que você aprendeu como fazer benchmark de código Rust com libtest bench, 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 é usar o Bencher.
O que é o Bencher?
Bencher é um conjunto de ferramentas de benchmarking contínuo. 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 sejam mescladas.
- Execute: Execute seus benchmarks localmente ou no CI usando os exatos mesmos runners bare metal e suas ferramentas de benchmarking favoritas. O CLI
bencherorquestra a execução dos seus benchmarks em bare metal 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 localmente ou no CI usando o exato mesmo hardware bare metal. Bencher usa análises personalizáveis e de última geração para detectar regressões de desempenho antes que sejam mescladas.
Pelos mesmos motivos que os testes de unidade são executados para prevenir regressões de funcionalidades, benchmarks deveriam ser executados com o Bencher para prevenir regressões de desempenho. Bugs de desempenho são bugs!
Passos para o Bencher Cloud
- Crie uma conta no Bencher Cloud.
- Crie um token de API e adicione-o ao seu CI como um segredo.
- Crie um fluxo de trabalho para o seu CI, como GitHub Actions ou GitLab CI/CD.
- Instale o Bencher CLI no seu fluxo de trabalho CI.
-
Execute seus benchmarks com o
bencher runsubcomando no seu fluxo de trabalho CI usando o adaptadorrust_bench.
Passos para Bencher Self-Hosted
- Crie uma instância Bencher Self-Hosted.
- Crie uma conta em sua instância Bencher Self-Hosted.
- Crie um token de API e adicione-o ao seu CI como um segredo.
- Crie um fluxo de trabalho para o seu CI, como GitHub Actions ou GitLab CI/CD.
- 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.
-
Execute seus benchmarks com o
bencher runsubcomando no fluxo de trabalho do seu CI usando o adaptadorrust_benche configure a opção--hostpara a URL da sua instância Bencher Self-Hosted.
🦀 Bench do Rust
O Adaptador de Bench do Rust (rust_bench) espera a saída do bench do libtest.
A medida de latência (ou seja, nanossegundos (ns)) é coletada.
Os valores lower_value e upper_value são o desvio abaixo e acima da mediana (ou seja, value) respectivamente.
bencher run --adapter rust_bench "cargo +nightly bench"Sua próxima regressão de desempenho não vai se anunciar
Capture na revisão, ou pague por isso em produção.