クイックスタート
Bencherとは?
Bencherは、連続ベンチマーキングツールのスイートです。 パフォーマンスの後退があなたのユーザーに影響を与えたことはありますか? Bencherなら、それが起こるのを防げた可能性があります。 Bencherは、パフォーマンスの低下を_productionに到達する_前に検出し、防止することを可能にします。
- 実行: お気に入りのベンチマーキングツールを使用してベンチマークをローカルまたはCIで実行します。
bencherCLIは単にあなたの既存のベンチマークハーネスをラップし、その結果を保存します。 - 追跡: ベンチマークの結果を時間と共に追跡します。ソースブランチ、テストベッド、測定基準に基づいて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 | 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"⠀次に、bencher CLI がインストールされているか確認しましょう。以下を実行します:
bencher --versionbencher --versionbencher --versionbencher --version次のように表示されるはずです:
bencher 0.5.6ベンチマークハーネスを選択
すでにベンチマークが書かれている場合は、以下のリストからプログラミング言語とベンチマークハーネスを選択してください。そうでない場合は、このステップをスキップしてください。詳細については、ベンチマークハーネスアダプタ のドキュメントを参照してください。
ベンチマークの追跡
ベンチマーク結果を追跡する準備が整いました!
これを行うには、ベンチマークを実行し結果を収集するために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 "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'"ベンチマークコマンドを設定に合わせて変更する必要があるかもしれません。
まだベンチマークがない場合は、ベンチマークコマンドとして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ブラウザで各ベンチマークの結果を確認できるようになりました。 「結果を表示」からリンクをクリックするかコピーして貼り付けてください。 プロジェクトを取得するには、「このプロジェクトを取得する」リンクをブラウザにクリックまたはコピーして貼り付けてください。
🐰 おめでとうございます!初めてのベンチマーク結果を追跡しました! 🎉