ベンチマークの概要
ほとんどのベンチマーク結果は一時的です。 結果はあなたのターミナルがスクロールバック限界に達すれば消えてしまいます。 一部のベンチマークハーネスは結果をキャッシュすることを許可していますが、ほとんどはローカル内でしかそうしません。 Bencherでは、ローカルとCIの両方からベンチマークを追跡し、歴史的な結果と比較することができます。
ベンチマークを追跡する最も簡単な方法は、bencher run
CLIサブコマンドです。
これは既存のベンチマークハーネスの出力を包み込んでレポートを生成します。
このレポートはその後Bencher APIサーバーに送られ、
ここでベンチマークハーネスの出力はベンチマークハーネスアダプターを用いて解析されます。
ベンチマークハーネスアダプターは存在するすべてのベンチマークとそれぞれのメトリックを検出します。
これらのベンチマークとメトリックはレポートと一緒に保存されます。
閾値が設定されている場合、新しいメトリックはレポート内の各ベンチマークに対する歴史的なメトリックと比較されます。
リグレッションが検出された場合、アラートが生成されます。
これ以降、混乱を避けるためにあなたの「ベンチマーク」を「パフォーマンスリグレッションテスト」と呼ぶことにします。
ベンチマーク
ベンチマークとは、名前をつけたパフォーマンスリグレッションテストです。 パフォーマンスリグレッションテストがBencherで新たに追加された場合、ベンチマークは自動的に作成されます。 それ以外の場合、パフォーマンスリグレッションテストの名前がベンチマークの一意の識別子として使用されます。
パフォーマンスリグレッションテストの名前を変更する際には注意が必要です。 Bencher上のベンチマークの名前を手動で新しい名前に変更する必要があります。 さもなければ、名前を変更したパフォーマンスリグレッションテストは新たなベンチマークとみなされます。 この注意は、パフォーマンスリグレッションテストを_移動_する場合も同様です。 ベンチマークハーネスによっては、パフォーマンスリグレッションテストへのパスがその名前の一部になる可能性があります。
上記の注意事項の唯一の例外は、ベンチマークを無視する場合です。完全な概要についてはアラートの抑制を参照してください。
メトリクス
メトリクスとは、単一の、ある時点でのパフォーマンスリグレッションテスト結果です。
単一のメトリクスに対して最大で3つの測定値(value
、lower_value
、 upper_value
)が収集されます。
value
は全てのメトリクスで必須で、 lower_value
とupper_value
は独立したオプションです。
どの測定値が収集されるかは、ベンチマークハーネスアダプターによって決まります。
メトリック種類
メトリック種類とは、メトリックの測定単位です。
デフォルトでは全てのプロジェクトは Latency
とThroughput
のメトリック種類を持っており、その単位はnanoseconds (ns)
とoperations / second (ops/s)
となります。
メトリック種類はベンチマークハーネスアダプターによって決定されます。
レポート
レポートとは、特定のBranchとTestbedにおけるベンチマークとそのメトリクスの集合です。
レポートは主にbencher run
CLIサブコマンドを使用して生成されます。
完全な概要についてはパフォーマンスリグレッションテストの追跡方法を参照してください。
Branch
Branchとは、レポートを実行する際に使用されるgit
ref(つまり、ブランチ名やタグ)です。
デフォルトでは全てのプロジェクトはmain
Branchからスタートします。
bencher run
CLIサブコマンドを使用する際に、
提供されていない場合はmain
がデフォルトのBranchとなります。
完全な概要についてはbranch選択を参照してください。
Testbed
Testbedとは、レポートを実行する際に使用されるテスト環境の名前です。
デフォルトでは全てのプロジェクトはlocalhost
Testbedからスタートします。
bencher run
CLIサブコマンドを使用する際に、
提供されていない場合はlocalhost
がデフォルトのTestbedとなります。
🐰 おめでとう! パフォーマンスリグレッションテストの追跡方法を全て学びました! 🎉