Wie man die Bauzeit mit Bencher verfolgt


Bencher unterstützt die beliebtesten Benchmarking Harnesses direkt. Manchmal möchten Sie jedoch messen, wie lange es dauert, Ihre Auslieferungen selbst zu bauen, wie zum Beispiel die Kompilierungszeit eines ausführbaren Programms. Zum Glück unterstützt Bencher auch die Verfolgung von Bauzeiten. Der einfachste Weg, Bauzeiten zu verfolgen, ist die Verwendung des bencher run-CLI-Unterbefehls mit dem --build-time-Flag. Im Hintergrund gibt bencher run die Ergebnisse als Bencher Metric Format (BMF) JSON aus. Daher ist es eine gute Praxis, den „json“-Adapter explizit zu verwenden.

Wenn Sie ein Skript unter ./my_build_script.sh hätten, das Ihr Binary baut, könnten Sie die Bauzeit dieses Binaries mit bencher run und dem json Adapter verfolgen. Das --build-time Flag erfordert einen Benchmark-Befehl.

Terminal window
bencher run --build-time --adapter json ./my_build_script.sh

Das generierte BMF-JSON würde so aussehen, wenn Ihr Build-Skript 87,0 Sekunden zur Fertigstellung benötigte:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
}
}

Beachten Sie, dass der Benchmark-Name /bin/sh -c ./my_build_script.sh ist. Dies liegt daran, dass unser Befehl nur ein einziges Argument ist, daher verwendet bencher run standardmäßig die Shell-Form für die Ausführung. Alternativ, wenn Sie die Verwendung der Exec-Form erzwingen möchten, können Sie entweder mehrere Argumente angeben oder das --exec Flag verwenden.

Terminal window
bencher run --build-time --adapter json --exec ./my_build_script.sh

Wenn dieser Exec-Form-Build 86,98 Sekunden dauerte, würde das generierte BMF-JSON wie folgt aussehen:

{
"./my_build_script.sh": {
"build-time": {
"value": 86.98
}
}
}

Jetzt ist der Benchmark-Name einfach ./my_build_script.sh. Das ./my_build_script.sh Objekt enthält den build-time Schlüssel. build-time ist das Kürzel für die eingebaute Buildzeit-Messung. Die Buildzeit-Messung wird nicht standardmäßig für alle Projekte erstellt. Wenn Sie jedoch die Buildzeit-Messung verwenden, wird sie automatisch für Ihr Projekt erstellt. Das Buildzeit-Messobjekt enthält eine Metrik mit dem Bauzeitwert in Sekunden, 87,0 und 86,98 in unseren Beispielen.

Die Bauzeit wird immer auf die nächsten zwei Dezimalstellen gerundet. Das heißt, sie wird niemals eine lange Dezimalzahl wie 42,666666 sein.

Dateigröße verfolgen

Sie möchten möglicherweise die Dateigröße verfolgen Ihrer Liefergegenstände, zusätzlich dazu, wie lange es dauert, diese zu bauen. bencher run unterstützt sowohl das Verfolgen von Bauzeiten als auch von Dateigrößen.

Wenn die Ausgabe Ihres ./my_build_script.sh Build-Skripts ein Binärprogramm im Pfad ./path/to/my_binary war, könnten Sie sowohl die Compile-Zeit als auch die Größe des Binärprogramms mit diesem Befehl verfolgen:

Terminal window
bencher run --build-time --file-size ./path/to/my_binary --adapter json ./my_build_script.sh

Wenn my_binary eine Größe von 42 Bytes hätte, würde das generierte BMF JSON so aussehen:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
},
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

🐰 Glückwunsch! Sie haben gelernt, wie Sie Ihre Bauzeit verfolgen! 🎉


Weiter: Wie man Benchmarks in CI verfolgt ➡

🤖 Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


Published: Sat, November 9, 2024 at 10:00:00 AM UTC