Bencher로 커스텀 벤치마크를 추적하는 방법


Bencher는 기본적으로 가장 인기 있는 벤치마킹 하네스를 지원하며, 새로운 어댑터에 대한 제안도 항상 환영합니다. 그러나 기성 벤치마킹 하네스가 필요에 맞지 않는 상황이 발생할 수 있어, 사용자 정의 벤치마킹 하네스를 만들 필요가 있을 수 있습니다. 운 좋게도, Bencher는 사용자 정의 벤치마킹 하네스 사용도 지원합니다. 사용자 정의 벤치마크 하네스를 Bencher와 통합하는 가장 쉬운 방법은 Bencher Metric Format (BMF) JSON을 출력하는 것입니다.

BMF JSON의 예시입니다:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
}
}
}

이 예시에서 benchmark_name 키는 벤치마크의 이름을 의미합니다. 벤치마크 이름은 최대 1024자까지의 비어 있지 않은 문자열일 수 있습니다. benchmark_name 객체는 여러 측정 이름, 슬러그, 또는 UUID를 키로 포함할 수 있습니다. 지정된 값이 이름이나 슬러그이고 해당 측정이 아직 존재하지 않는 경우, 자동으로 생성됩니다. 하지만, 지정된 값이 UUID인 경우 해당 측정이 이미 존재해야 합니다. 이 예시에서, latency는 기본 제공 Latency 측정의 슬러그입니다. 기본적으로 각 프로젝트는 Latency(예: latency)와 Throughput(예: throughput) 측정을 가지고 있으며, 이는 각각 나노초(ns)초당 연산(ops/s)으로 측정됩니다. 측정 객체는 최대 세 개의 값이 있는 메트릭을 포함합니다: value, lower_value, upper_value. lower_valueupper_value 값은 선택 사항입니다.

이 예시에서, latency 측정 객체는 다음과 같은 값을 포함합니다:

  • value 값은 88.0
  • lower_value 값은 87.42
  • upper_value 값은 88.88

만약 ./run/my/benchmarks.sh에 위치한 스크립트가 벤치마크를 실행하고 그 결과를 BMF JSON으로 표준 출력에 출력했다면, 다음 명령어를 이용하여 bencher runthe json 어댑터을 사용하여 추적할 수 있습니다:

Terminal window
bencher run --adapter json "bencher mock"

만약 여러분의 결과가 results.json이라는 파일에 저장되어 있다면, 파일 경로를 지정하기 위해 --file 옵션을 사용할 수 있습니다. 이것은 벤치마크 명령어가 있는 경우와 없는 경우 모두에서 작동합니다.

벤치마크 명령어가 있는 경우:

Terminal window
bencher run --file results.json --adapter json "bencher mock > results.json"

벤치마크 명령어가 없는 경우:

Terminal window
bencher mock > results.json && bencher run --file results.json --adapter json

여러 측정

벤처 메트릭 형식 (BMF) JSON에서 벤치마크 객체는 여러 측정 이름, 슬러그 또는 UUID를 키로 포함할 수 있습니다. 지정된 값이 이름 또는 슬러그이고 측정이 이미 존재하지 않는 경우, 자동으로 생성됩니다. 하지만 지정된 값이 UUID인 경우, 측정이 이미 존재해야 합니다. 각 측정 객체는 최대 세 가지 값, value, lower_value, 및 upper_value를 포함하는 메트릭이 필요합니다. lower_valueupper_value 값은 선택 사항입니다.

다음은 여러 측정을 포함한 BMF JSON의 예제입니다:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
},
"throughput" {
"value": 5.55,
"lower_value": 3.14,
"upper_value": 6.30
}
}
}

이 예제에서 latency 측정 객체는 다음 값을 포함합니다:

  • value88.0
  • lower_value87.42
  • upper_value88.88

그리고 throughput 측정 객체는 다음 값을 포함합니다:

  • value5.55
  • lower_value3.14
  • upper_value6.30

당신은 bencher mock CLI 서브 명령어 --measure 옵션과 함께 사용하여 여러 측정을 포함한 모의 BMF 데이터를 생성할 수 있습니다. 우리는 이를 자체 커스텀 벤치마크 실행기용 자리표시자로 사용할 것입니다. 벤처 실행 json 어댑터를 사용하여 다음 명령어로 여러 측정을 가진 벤치마크를 추적할 수 있습니다:

Terminal window
bencher run --adapter json "bencher mock --measure latency --measure throughput"

🐰 축하합니다! 커스텀 벤치마크를 추적하는 방법을 배웠습니다! 🎉


계속하기: CI에서 벤치마크 추적하는 방법 ➡

🤖 이 문서는 OpenAI GPT-4에 의해 자동으로 생성되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.


Published: Sun, May 12, 2024 at 7:44:00 AM UTC | Last Updated: Sun, October 13, 2024 at 12:27:00 PM UTC