Bencherを使用してベンチマークを追跡する方法


ベンチマークを追跡する最も簡単な方法は、bencher run CLIサブコマンドです。 より詳しい説明については、ベンチマーキング概要をご覧ください。 以下は、feature-branchという適切な名前のフィーチャーブランチでベンチマークを追跡するためのbencher run CLIサブコマンドの例です:

bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
  1. プロジェクトは既に存在している必要があります。--projectフラグまたはBENCHER_PROJECT環境変数をプロジェクトのスラッグまたはUUIDに設定します。(例:--project save-walter-white)
  2. APIトークンは既に存在している必要があります。--tokenフラグまたはBENCHER_API_TOKEN環境変数をAPIトークンに設定します。(例:--token ...)
  3. オプション:--adapterフラグまたはBENCHER_ADAPTER環境変数を希望のアダプタ名に設定します。これが設定されていない場合、magicアダプタが使用されます。全体の概要についてはベンチマークハーネスアダプタを参照してください。(例:--adapter json)
  4. プロジェクトブランチの設定にはいくつかのオプションがあります。完全な概要についてはブランチの選択を参照してください。
    1. 既に存在する現在のブランチを使用します。(例:--if-branch feature-branch)
    2. 既に存在するターゲットブランチのデータのクローンを作成します。(例:--else-if-branch main)
    3. それ以外の場合、--if-branchに提供した名前で新しいブランチを作成します。これはfeature-branchとなるでしょう。(例:--else-branch)
  5. オプション:--testbedフラグまたはBENCHER_TESTBED環境変数をTestbedのスラッグまたはUUIDに設定します。Testbedは既に存在している必要があります。これが設定されていない場合、デフォルトのlocalhost Testbedが使用されます。(例:--testbed phoenix)
  6. アラートが生成された場合にコマンドを失敗させるように設定します。アラートを生成するためには、しきい値が既に存在している必要があります。(例:--err)
  7. ベンチマークを実行し、結果からレポートを生成します。(例:"bencher mock")

相対的ベンチマーキング

相対的ベンチマーキングは、2つのコミットの並列比較を実行します。 これは、利用可能なリソースが実行間で大幅に変動する可能性のあるノイズの多いCI/CD環境に対処する際に便利です。 以下は、feature-branchという適切な名前のフィーチャーブランチで相対ベンチマーキングを実行するためのbencher run CLIサブコマンドの例です:

git checkout feature-branch

export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)

git checkout main

bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"

git checkout feature-branch

bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95

bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
  1. フィーチャーブランチをチェックアウトします。(例:feature-branch)
  2. フィーチャーブランチの名前と短いgitコミットIDを連結した環境変数を作成します。これは重要です!これにより、各実行ごとに新しいブランチが作成されることが保証されます。
  3. ターゲットブランチをチェックアウトします。(例:main)
  4. ターゲットブランチに対してbencher runを実行します:
    1. まだ存在しないブランチを指定します。(例:--if-branch "$FEATURE_BRANCH")
    2. そしてそれが作成されます。(例:--else-branch)
    3. ベンチマークを3回実行します。(例:--iter 3)
  5. フィーチャーブランチをチェックアウトします。(例:feature-branch)
  6. フィーチャーブランチのためのしきい値を作成します:
    1. ベンチマークのMetric KindはLatencyです。(例:--metric-kind latency)
    2. Branchは、付け足されたgitコミットIDを持つフィーチャーブランチです。(例:--branch "$FEATURE_BRANCH")
    3. Testbedはローカルで実行されます。(例:--testbed localhost)
    4. 30以下のメトリクスがある場合は、Studentのtテストを使用します。(例:--test t)
    5. パフォーマンスが後退することを示すため、Latencyが大きいほど右側の境界を95.0%に設定します。(例:--right-side 0.95)
  7. フィーチャーブランチに対して bencher run を実行します:
    1. ブランチは、先ほど作成したため存在するはずです。(例:--if-branch "$FEATURE_BRANCH")
    2. テストを3回実行します。(例:--iter 3)
    3. 3つのメトリクスすべてを最小値に折り畳みます。(例:--fold min)
    4. しきい値によりアラートが生成された場合にコマンドが失敗するように設定します。(例:--err)


🐰 おめでとうございます! Bencherを利用してベンチマークを追跡する方法を学びました! 🎉


BencherをGitHub Actionsに追加 ➡

BencherをGitLab CI/CDに追加 ➡

🤖 このドキュメントは OpenAI GPT-4 によって自動的に生成されました。 正確ではない可能性があり、間違いが含まれている可能性があります。 エラーを見つけた場合は、GitHub で問題を開いてください。.