Inicio Rapido Bencher Bare Metal
O que e 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!
Instalar o bencher CLI
Selecione seu sistema operacional e execute o comando fornecido para instalar o bencher CLI.
Para mais detalhes, veja a documentação de instalação do bencher CLI.
⠀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"⠀Agora, vamos verificar se você tem o bencher CLI instalado. Execute:
bencher --versionbencher --versionbencher --versionbencher --versionVocê deverá ver:
bencher 0.6.2Criar um Projeto
Antes de enviar uma imagem de benchmark, voce precisa de um projeto no Bencher.
A maneira mais facil de criar um e executar o subcomando CLI bencher run
com o subcomando bencher mock. Execute:
bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"Isso cria um novo projeto no Bencher Cloud.
Observe a URL View report na saida.
O slug do seu projeto e o segmento do caminho apos /perf/ na URL.
Por exemplo, se a URL for:
https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54entao o slug do seu projeto e my-project-abc1234.
Voce precisara desse slug do projeto nos proximos passos.
Enviar sua Imagem de Benchmark
O Bencher Bare Metal executa benchmarks empacotados como imagens de container OCI em hardware dedicado.
Para este inicio rapido, usaremos a imagem Docker do CLI bencher como nossa imagem de benchmark.
Nenhuma imagem personalizada e necessaria.
Primeiro, baixe a imagem do CLI bencher do GitHub Container Registry.
Execute:
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:latestEm seguida, retag a imagem para o registro OCI do Bencher.
Substitua YOUR_PROJECT_SLUG pelo slug do projeto do passo anterior:
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:latestDepois, faca login no registro OCI do Bencher e envie a imagem:
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:latestPara mais detalhes sobre como criar sua propria imagem personalizada, consulte a documentacao de Imagem.
Rastrear seus Benchmarks Bare Metal
Agora voce esta pronto para rastrear seus resultados de benchmark em hardware dedicado!
Para isso, voce usara o subcomando CLI bencher run
para executar seus benchmarks e coletar os resultados.
Substitua YOUR_PROJECT_SLUG pelo slug do projeto dos passos anteriores e execute:
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 jsonEstamos usando o subcomando bencher noise como nosso comando de benchmark para gerar alguns dados de amostra.
Ele mede quao ruidoso e o seu ambiente de benchmark.
Quando usamos a opcao --format json, os resultados sao gerados no Bencher Metric Format (BMF).
Se tudo funcionar como esperado, o final da saida deve se parecer com isto:
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-8e18d5d062c4Agora voce pode visualizar os resultados de cada um dos seus benchmarks no navegador.
Clique ou copie e cole os links de View results.
Para reivindicar esses resultados, clique ou copie e cole o link Claim this project em seu navegador.
🐰 Parabens! Voce rastreou seus primeiros resultados de benchmark Bare Metal! 🎉