Bencherでカスタムベンチマークを追跡する方法


Bencherは、最も人気のあるベンチマーキングハーネスを標準サポートしており、 新しいアダプターに関する提案をいつでも歓迎しています。 しかし、市販のベンチマーキングハーネスが要件に合わない場合があり、 カスタムベンチマーキングハーネスの作成が必要になることがあります。 幸いなことに、Bencherはカスタムベンチマーキングハーネスの使用もサポートしています。 Bencherとカスタムベンチマークハーネスを統合する最も簡単な方法は、 Bencherメトリック形式 (BMF) JSON を出力することです。

これは BMF JSON の例です:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
}
}
}

この例では、キー benchmark_nameBenchmark の名前になります。 A Benchmark can be identified by its name, slug, or UUID. benchmark_name オブジェクトは複数の Measure の名前、スラッグ、または UUID をキーとして含めることができます。 指定された値が名前またはスラッグで、対応する Measure がまだ存在しない場合は、自動的に作成されます。 ただし、指定された値が UUID の場合は、Measure が既に存在している必要があります。 この例では、latency は組み込みの Latency Measure のスラッグです。 各 Project にはデフォルトで Latency(latency)と Throughput(throughput)の Measure があり、それぞれ nanosecond (ns)operations / second (ops/s) で測定されます。 Measure オブジェクトは Metric を含み、最大で 3 つの値(valuelower_valueupper_value)を持ちます。 lower_valueupper_value は省略可能です。

この例では、latency Measure オブジェクトは次の値を含みます:

  • value88.0
  • lower_value87.42
  • upper_value88.88

もし ./run/my/benchmarks.shに位置するスクリプトを持っていて、それがベンチマークを実行し、BMF JSONとして標準出力に結果を出力した場合、 以下のコマンドを使用して、 bencher run およびthe json adapterを使用して追跡できます。

Terminal window
bencher run --adapter json "bencher mock"

結果が results.json という名前のファイルに格納されている場合は、ファイルパスを指定するために --file オプションを使用できます。 これは、ベンチマークコマンドがある場合とない場合の両方で機能します。

ベンチマークコマンドあり:

Terminal window
bencher run --file results.json --adapter json "bencher mock > results.json"

ベンチマークコマンドなし:

Terminal window
bencher mock > results.json && bencher run --file results.json --adapter json

複数のメジャー

ベンチャー メトリック フォーマット (BMF) JSON では、ベンチマーク オブジェクトに複数の メジャー 名、スラグ、または UUID をキーとして含めることができます。指定された値が名前またはスラグであり、メジャーが既に存在しない場合は、自動的に作成されます。ただし、指定された値が UUID の場合は、メジャーは既に存在している必要があります。各メジャーオブジェクトには、最大 3 つの値 (valuelower_value、および upper_value) を持つ メトリック を含める必要があります。lower_valueupper_value の値はオプションです。

以下は、複数のメジャーを持つ BMF JSON の例です:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
},
"throughput" {
"value": 5.55,
"lower_value": 3.14,
"upper_value": 6.30
}
}
}

この例では、latency メジャーオブジェクトには次の値が含まれています:

  • value88.0
  • lower_value87.42
  • upper_value88.88

そして、throughput メジャーオブジェクトには次の値が含まれています:

  • value5.55
  • lower_value3.14
  • upper_value6.30

あなたは ベンチャー mock CLI サブコマンド—measure オプション を使用して、複数のメジャーを持つモック BMF データを生成することができます。これは、独自のカスタムベンチマークランナーのプレースホルダーとして使用します。bencher runjson アダプター を使用して、次のコマンドで複数のメジャーを持つベンチマークを追跡できます:

Terminal window
bencher run --adapter json "bencher mock --measure latency --measure throughput"

🐰 おめでとうございます!カスタムベンチマークの追跡方法を学びました!🎉


続けて:CIでベンチマークを追跡する方法 ➡

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


Published: Sun, May 12, 2024 at 7:44:00 AM UTC | Last Updated: Fri, January 30, 2026 at 12:27:00 PM UTC