Bencher로 빌드 시간 추적하는 방법


Bencher는 가장 인기 있는 벤치마킹 하네스를 기본으로 지원합니다. 그러나 때로는 실행 파일의 컴파일 시간과 같이 결과물을 빌드하는 데 걸리는 시간을 측정하고 싶을 때가 있습니다. 다행히도 Bencher는 빌드 시간 추적을 지원합니다. 빌드 시간을 추적하는 가장 쉬운 방법은 --build-time 플래그를 사용하여 bencher run CLI 서브커맨드를 사용하는 것입니다. 내부적으로는, bencher run이 결과를 Bencher Metric Format (BMF) JSON으로 출력합니다. 따라서 the json adapter을 명시적으로 사용하는 것이 좋은 습관입니다.

당신이 이진 파일을 구축하는 ./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은 내장된 빌드 시간 측정를 위한 슬러그입니다. 빌드 시간 측정은 모든 프로젝트에 기본적으로 생성되지 않습니다. 그러나 빌드 시간 측정을 사용하면, 당신의 프로젝트에 자동으로 생성됩니다. 빌드 시간 측정 객체는 초 단위의 빌드 시간 value를 가진 메트릭을 포함하며, 예시로 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