Bencher-Metrikformat (BMF)


Integrierte Benchmark-Harness-Adapter wandeln Benchmark-Ergebnisse in das Bencher Metric Format (BMF) JSON um. Benutzerdefinierte Benchmarking-Harnesses sollten ihre Ergebnisse als BMF JSON ausgeben und den json Adapter verwenden. Siehe wie man benutzerdefinierte Benchmarks verfolgt für einen vollständigen Überblick.

Beispiel für Bencher Metric Format (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
}
},
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
},
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

In diesem Beispiel gibt es drei Benchmarks:

Reihenfolge der Priorität

Die Reihenfolge der Priorität zur Identifizierung eines Benchmark ist wie folgt:

  1. UUID
  2. Kebab-Case-name mit dem Suffix -bencher-ignore, das entfernt wird, um Alarme zu unterdrücken (maximale Länge 1024 Zeichen)
  3. slug (maximale Länge 64 Zeichen)
  4. name (maximale Länge 1024 Zeichen)

Die Reihenfolge der Priorität zur Identifizierung einer Messgröße ist wie folgt:

  1. UUID
  2. slug (maximale Länge 64 Zeichen)
  3. name (maximale Länge 64 Zeichen)

Bencher Metric Format (BMF) JSON-Schema

Dies ist das JSON-Schema für Bencher Metric Format (BMF) JSON:

{
"$id": "https://bencher.dev/bmf.json",
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"patternProperties": {
".+": {
"type": "object",
"patternProperties": {
".+": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"lower_value": {
"type": "number"
},
"upper_value": {
"type": "number"
}
},
"required": ["value"]
}
}
}
}
}

Schema-Versionen:


bencher mock

Der CLI-Unterbefehl bencher mock wird verwendet, um simulierte Bencher Metric Format (BMF) JSON-Daten zu generieren.

--seed <SEED>

Der Seed für den Pseudozufallszahlengenerator. Wenn nicht angegeben, wird ein zufälliger Seed verwendet.

--count <COUNT>

Die Anzahl der zu erzeugenden simulierten Benchmarks.

--measure <MEASURE>

Die Measure, die für jeden Benchmark verwendet werden soll. Mehrere Measures können angegeben werden, indem die Option --measure mehrfach verwendet wird. Standardmäßig ist die eingebaute latency-Measure.

--pow <POW>

Die Zehnerpotenz, die für die simulierten Metriken verwendet werden soll. Standardmäßig ist sie 1.

--fail

Beim Ausführen fehlschlagen.

--flaky

Während der Ausführung gelegentlich fehlschlagen.

--help

Hilfemeldung anzeigen.



Published: Sun, May 12, 2024 at 3:12:00 PM UTC | Last Updated: Fri, January 30, 2026 at 3:12:00 PM UTC