Inicio Rápido
¿Qué es Bencher?
Bencher es un conjunto de herramientas de benchmarking continuo. ¿Alguna vez has tenido un impacto de regresión de rendimiento en tus usuarios? Bencher podría haber evitado que eso sucediera. Bencher te permite detectar y prevenir las regresiones de rendimiento antes de que lleguen a producción.
- Ejecutar: Ejecute sus benchmarks localmente o en CI usando sus herramientas de benchmarking favoritas. La CLI
bencher
simplemente envuelve su arnés de benchmarks existente y almacena sus resultados. - Seguir: Sigue los resultados de tus benchmarks con el tiempo. Monitoriza, realiza consultas y representa gráficamente los resultados utilizando la consola web de Bencher basándose en la rama de origen, el banco de pruebas y la medida.
- Capturar: Captura las regresiones de rendimiento en CI. Bencher utiliza analíticas de vanguardia y personalizables para detectar regresiones de rendimiento antes de que lleguen a producción.
Por las mismas razones que las pruebas unitarias se ejecutan en CI para prevenir regresiones funcionales, los benchmarks deberían ejecutarse en CI con Bencher para prevenir regresiones de rendimiento. ¡Los errores de rendimiento son errores!
Instalar la CLI de bencher
Selecciona tu sistema operativo y ejecuta el comando proporcionado para instalar la CLI de bencher
.
Para más detalles, consulta la documentación de instalación de la CLI de bencher
.
⠀
curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
cargo install --git https://github.com/bencherdev/bencher --branch main --locked --force bencher_cli
powershell -c "irm https://bencher.dev/download/install-cli.ps1 | iex"
⠀
Ahora, verifiquemos que tienes instalada la CLI de bencher
. Ejecuta:
bencher --version
bencher --version
bencher --version
bencher --version
Deberías ver:
bencher 0.5.0
Seleccione su Marco de Referencia
Si ya tiene puntos de referencia escritos, seleccione su lenguaje de programación y el marco de referencia de la lista a continuación. De lo contrario, solo omita este paso. Para obtener más detalles, consulte la documentación de adaptadores de marco de referencia.
Rastrea tus Benchmarks
¡Ahora estás listo para rastrear los resultados de tus benchmarks!
Para hacerlo, usarás el subcomando de la CLI bencher run
para ejecutar tus benchmarks y recopilar los resultados. Ejecuta:
⠀
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 "cargo bench"
bencher run "cargo bench"
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'"
Puede que necesites modificar el comando del benchmark para que coincida con tu configuración.
Si aún no tienes ningún benchmark, simplemente puedes usar el subcomando bencher mock
como tu comando de benchmark para generar algunos datos simulados.
Si todo funciona como se espera, el final del output debería verse algo así:
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-8e18d5d062c4
Ahora puedes ver los resultados de cada uno de tus benchmarks en el navegador.
Haz clic o copia y pega los enlaces de Ver resultados
.
Para reclamar el proyecto, haz clic o copia y pega el enlace Reclamar este proyecto
en tu navegador.
🐰 ¡Felicidades! ¡Has seguido los resultados de tu primer benchmark! 🎉