Bencherでファイルサイズを追跡する方法


Bencher supports the most popular benchmarking harnesses out-of-the-box. Sometimes though, you want to measure the size of your deliverables themselves, such as the binary size of an executable. Lucky for you, Bencher also supports tracking file size. The easiest way to track file size is to use the bencher run CLI subcommand with the --file-size option. The --file-size option expects a file path to the file who’s size will be measured. Under the hood, bencher run outputs the results as Bencher Metric Format (BMF) JSON. It is therefore good practice to explicitly use the json adapter.

If you had a script located at ./my_build_script.sh that built your binary at the path ./path/to/my_binary, then you could track the size of this binary file with bencher run and the json adapter. This would work both with a benchmark command and without one.

With a benchmark command:

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

Without a benchmark command:

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

In either case, the generated BMF JSON would look like this, if my_binary had a size of 42 bytes:

{
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

In this example, the key my_binary is the binary file name. It is used as the name of the Benchmark. The my_binary object contains the file-size key. file-size is the slug for the built-in File Size Measure. The File Size Measure is not created by default for all Projects. However, when you use the File Size Measure, it will be automatically created for your Project. The File Size Measure object contains a Metric with the file size value in bytes, 42.0.

The File Size will always be a whole byte increment. That is, it will never have a decimal like 42.5. However, BMF JSON needs to support a wide range of possible values, so it uses floats instead of integers.

複数のファイルサイズ

複数ファイルのサイズを追跡したい場合は、 同じbencher runコマンドで --file-sizeオプションを複数回使用するだけで簡単に実行できます。 例えば、my_binaryとWindows実行可能ファイルバージョンであるmy_binary.exeの両方を追跡することができます。

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

my_binary.exe48バイトのサイズの場合、生成されるBMF JSONは以下のようになります:

{
"my_binary": {
"file-size": {
"value": 42.0
}
},
"my_binary.exe": {
"file-size": {
"value": 48.0
}
}
}

ビルド時間のトラッキング

成果物のファイルサイズをトラッキングすることに加えて、ビルド時間をトラッキングすることもできます。 bencher run は、ファイルサイズとビルド時間の両方をトラッキングすることをサポートしています。

次のコマンドを使用することで、my_binary のバイナリサイズとコンパイル時間の両方をトラッキングできます。

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

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

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

🐰 おめでとうございます! ファイルサイズの追跡方法を習得しました! 🎉


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

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


Published: Mon, May 13, 2024 at 7:14:00 AM UTC | Last Updated: Sat, November 9, 2024 at 7:17:00 AM UTC