Início Rápido
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
benchersimplesmente 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!
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.5.6Selecione seu Benchmark Harness
Se você já tem benchmarks escritos, selecione sua linguagem de programação e o benchmark harness da lista abaixo. Caso contrário, simplesmente pule esta etapa. Para mais detalhes, veja a documentação dos adaptadores de benchmark harness.
Acompanhe seus Benchmarks
Agora você está pronto para acompanhar os resultados dos seus benchmarks!
Para isso, você usará o subcomando CLI bencher run
para executar seus benchmarks e coletar os resultados. Execute:
⠀bencher run "make benchmarks"bencher run "make benchmarks"bencher run "make benchmarks --benchmark_format=json"bencher run "make benchmarks --benchmark_format=json"bencher run "dotnet run -c Release"bencher run "dotnet run -c Release"⠀bencher run "go test -bench"bencher run "go test -bench"bencher run --file results.json "java -jar benchmarks.jar -rf json -rff results.json"bencher run --file results.json "java -jar benchmarks.jar -rf json -rff results.json"bencher run "node benchmark.js"bencher run "node benchmark.js"bencher run "node benchmark.js"bencher run "node benchmark.js"bencher run "bencher mock"bencher run "bencher mock"bencher run "asv run"bencher run "asv run"bencher run --file results.json "pytest --benchmark-json results.json benchmarks.py"bencher run --file results.json "pytest --benchmark-json results.json benchmarks.py"bencher run "ruby benchmarks.rb"bencher run "ruby benchmarks.rb"bencher run "cargo +nightly bench"bencher run "cargo +nightly bench"bencher run "cargo bench"bencher run "cargo bench"bencher run "bencher mock"bencher run "bencher mock"bencher run "cargo bench"bencher run "cargo bench"bencher run --file results.json "hyperfine --export-json results.json 'sleep 0.1'"bencher run --file results.json "hyperfine --export-json results.json 'sleep 0.1'"Você pode precisar modificar o comando do benchmark para corresponder à sua configuração.
Se você ainda não tiver nenhum benchmark, pode simplesmente usar o subcomando bencher mock como seu comando de benchmark para gerar alguns dados simulados.
Se tudo funcionar como esperado, o final da saída deverá se parecer com isto:
View results:- bencher::mock_0 (Latency): 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=f7022024-ae16-4782-8f0d-869d65a82930&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54- bencher::mock_1 (Latency): 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=7a823440-216f-482d-a05f-8bf75e865bba&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54- bencher::mock_2 (Latency): 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=8d9695ff-f352-4781-9561-3c69012fd9fe&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54- bencher::mock_3 (Latency): 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=8ef6e256-8084-4afe-a7cf-eaa46384c19d&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54- bencher::mock_4 (Latency): 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=1205e35a-c73b-4ff9-916c-40838a62ae0b&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
Claim this project: https://bencher.dev/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4Agora você pode visualizar os resultados de cada um dos seus benchmarks no navegador.
Clique ou copie e cole os links de Ver resultados.
Para reivindicar o projeto, clique ou copie e cole o link Reivindicar este projeto no seu navegador.
🐰 Parabéns! Você acompanhou seus primeiros resultados de benchmark! 🎉