Bencherでカスタムベンチマークを追跡する方法
Bencherは、最も人気のあるベンチマーキングハーネスを標準サポートしており、 新しいアダプターに関する提案をいつでも歓迎しています。 しかし、市販のベンチマーキングハーネスが要件に合わない場合があり、 カスタムベンチマーキングハーネスの作成が必要になることがあります。 幸いなことに、Bencherはカスタムベンチマーキングハーネスの使用もサポートしています。 Bencherとカスタムベンチマークハーネスを統合する最も簡単な方法は、 Bencherメトリック形式 (BMF) JSON を出力することです。
これは BMF JSON の例です:
{ "benchmark_name": { "latency": { "value": 88.0, "lower_value": 87.42, "upper_value": 88.88 } }}この例では、キー benchmark_name は Benchmark の名前になります。
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 つの値(value、lower_value、upper_value)を持ちます。
lower_value と upper_value は省略可能です。
この例では、latency Measure オブジェクトは次の値を含みます:
valueは88.0lower_valueは87.42upper_valueは88.88
もし ./run/my/benchmarks.shに位置するスクリプトを持っていて、それがベンチマークを実行し、BMF JSONとして標準出力に結果を出力した場合、
以下のコマンドを使用して、
bencher run
およびthe json adapterを使用して追跡できます。
bencher run --adapter json "bencher mock"結果が results.json という名前のファイルに格納されている場合は、ファイルパスを指定するために --file オプションを使用できます。
これは、ベンチマークコマンドがある場合とない場合の両方で機能します。
ベンチマークコマンドあり:
bencher run --file results.json --adapter json "bencher mock > results.json"ベンチマークコマンドなし:
bencher mock > results.json && bencher run --file results.json --adapter json複数のメジャー
ベンチャー メトリック フォーマット (BMF) JSON では、ベンチマーク オブジェクトに複数の メジャー 名、スラグ、または UUID をキーとして含めることができます。指定された値が名前またはスラグであり、メジャーが既に存在しない場合は、自動的に作成されます。ただし、指定された値が UUID の場合は、メジャーは既に存在している必要があります。各メジャーオブジェクトには、最大 3 つの値 (value、lower_value、および upper_value) を持つ メトリック を含める必要があります。lower_value と upper_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 メジャーオブジェクトには次の値が含まれています:
valueは88.0lower_valueは87.42upper_valueは88.88
そして、throughput メジャーオブジェクトには次の値が含まれています:
valueは5.55lower_valueは3.14upper_valueは6.30
あなたは ベンチャー mock CLI サブコマンド と —measure オプション を使用して、複数のメジャーを持つモック BMF データを生成することができます。これは、独自のカスタムベンチマークランナーのプレースホルダーとして使用します。bencher run と json アダプター を使用して、次のコマンドで複数のメジャーを持つベンチマークを追跡できます:
bencher run --adapter json "bencher mock --measure latency --measure throughput"🐰 おめでとうございます!カスタムベンチマークの追跡方法を学びました!🎉