Bencherを使ったビルド時間の追跡方法


Bencherは、最も人気のあるベンチマークハーネスを標準でサポートしています。しかし、実行可能ファイルのコンパイル時間のように、成果物自体をビルドするのにどれくらい時間がかかるかを測定したい場合があります。幸運なことに、Bencherはビルド時間の追跡もサポートしています。ビルド時間を追跡する最も簡単な方法は、--build-time フラグを使用して bencher run CLIサブコマンドを使用することです。内部では、bencher run は結果を Bencher Metric Format (BMF) JSON として出力します。そのため、json アダプターを明示的に使用するのは良い慣行です。

もし、バイナリをビルドするスクリプトが ./my_build_script.sh にある場合、そのバイナリのビルド時間をbencher runjsonアダプターで追跡することができます。--build-timeフラグはベンチマークコマンドを必要とします。

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

ビルドスクリプトが完了するのに 87.0 秒かかった場合、生成されるBMF JSONは次のようになります:

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

このときのベンチマーク名は /bin/sh -c ./my_build_script.sh です。これは、コマンドが単一の引数のみであるため、bencher runはデフォルトでシェル形式での実行を行うからです。あるいは、exec形式の使用を強制したい場合、複数の引数を提供するか、--exec フラグを使用することができます。

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

このexec形式のビルドが 86.98 秒かかった場合、生成されるBMF JSONは次のようになります:

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

ここでのベンチマーク名は単に ./my_build_script.sh です。./my_build_script.sh オブジェクトには build-time キーが含まれています。build-time は組み込みのビルド時間メジャーのスラッグです。ビルド時間メジャーは、すべてのプロジェクトでデフォルトで作成されるわけではありません。しかし、ビルド時間メジャーを使用すると、プロジェクトに自動的に作成されます。ビルド時間メジャーオブジェクトには、ビルド時間の(秒単位)を持つメトリックが含まれており、我々の例では 87.086.98 です。

ビルド時間は常に小数点以下二桁に丸められます。つまり、42.666666 のような長い小数になることは_決して_ありません。

ファイルサイズを追跡する

成果物のビルドにかかる時間を追跡することに加えて、ファイルサイズを追跡する かもしれません。 bencher run は、ビルド時間とファイルサイズの両方を追跡することをサポートしています。

./my_build_script.sh ビルドスクリプトの出力が ./path/to/my_binary のパスにあるバイナリであった場合、 次のコマンドでコンパイル時間とバイナリサイズの両方を追跡できます:

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

my_binary のサイズが 42 バイトの場合、 生成される BMF JSON は次のようになります:

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

🐰 おめでとうございます!ビルド時間の追跡方法を習得しました! 🎉


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

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


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