クイックスタート
Bencherとは?
Bencherは、連続ベンチマーキングツールのスイートです。 パフォーマンスの後退があなたのユーザーに影響を与えたことはありますか? Bencherなら、それが起こるのを防げた可能性があります。 Bencherは、パフォーマンスの低下を_productionに到達する_前に検出し、防止することを可能にします。
- 実行: お気に入りのベンチマーキングツールを使用してベンチマークをローカルまたはCIで実行します。
bencher
CLIは単にあなたの既存のベンチマークハーネスをラップし、その結果を保存します。 - 追跡: ベンチマークの結果を時間と共に追跡します。ソースブランチ、テストベッド、測定基準に基づいてBencherのWebコンソールを使用して結果を監視、クエリ、グラフ化します。
- キャッチ: CIでパフォーマンスの後退をキャッチします。Bencherは最先端のカスタマイズ可能な分析を使用して、パフォーマンスの後退がProductionに到達する前にそれを検出します。
機能の後退を防ぐためにユニットテストがCIで実行されるのと同じ理由で、Bencherを使用してCIでベンチマークを実行してパフォーマンスの後退を防ぐべきです。パフォーマンスのバグはバグです!
bencher
CLI をインストールする
あなたのオペレーティングシステムを選択し、提供されるコマンドを実行して bencher
CLI をインストールします。
詳細は、bencher
CLI のインストールドキュメントを参照してください。
⠀
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"
⠀
次に、bencher
CLI がインストールされているか確認しましょう。以下を実行します:
bencher --version
bencher --version
bencher --version
bencher --version
次のように表示されるはずです:
bencher 0.5.0
ベンチマークハーネスを選択
すでにベンチマークが書かれている場合は、以下のリストからプログラミング言語とベンチマークハーネスを選択してください。そうでない場合は、このステップをスキップしてください。詳細については、ベンチマークハーネスアダプタ のドキュメントを参照してください。
ベンチマークの追跡
ベンチマーク結果を追跡する準備が整いました!
これを行うには、ベンチマークを実行し結果を収集するためにbencher run
CLIサブコマンドを使用します。実行:
⠀
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'"
ベンチマークコマンドを設定に合わせて変更する必要があるかもしれません。
まだベンチマークがない場合は、ベンチマークコマンドとしてbencher mock
サブコマンドを使用してモックデータを生成することができます。
すべてが期待通りに動作すると、出力の最後は次のようなものになるはずです:
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
ブラウザで各ベンチマークの結果を確認できるようになりました。 「結果を表示」からリンクをクリックするかコピーして貼り付けてください。 プロジェクトを取得するには、「このプロジェクトを取得する」リンクをブラウザにクリックまたはコピーして貼り付けてください。
🐰 おめでとうございます!初めてのベンチマーク結果を追跡しました! 🎉