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.exe의 크기가 48 바이트인 경우 생성된 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