Bencher로 커스텀 벤치마크를 추적하는 방법
Bencher는 기본적으로 가장 인기 있는 벤치마킹 하네스를 지원하며, 새로운 어댑터에 대한 제안도 항상 환영합니다. 그러나 기성 벤치마킹 하네스가 필요에 맞지 않는 상황이 발생할 수 있어, 사용자 정의 벤치마킹 하네스를 만들 필요가 있을 수 있습니다. 운 좋게도, Bencher는 사용자 정의 벤치마킹 하네스 사용도 지원합니다. 사용자 정의 벤치마크 하네스를 Bencher와 통합하는 가장 쉬운 방법은 Bencher Metric Format (BMF) JSON을 출력하는 것입니다.
BMF JSON의 예시입니다:
이 예시에서 benchmark_name
키는 벤치마크의 이름을 의미합니다.
벤치마크 이름은 최대 1024자까지의 비어 있지 않은 문자열일 수 있습니다.
benchmark_name
객체는 여러 측정 이름, 슬러그, 또는 UUID를 키로 포함할 수 있습니다.
지정된 값이 이름이나 슬러그이고 해당 측정이 아직 존재하지 않는 경우, 자동으로 생성됩니다.
하지만, 지정된 값이 UUID인 경우 해당 측정이 이미 존재해야 합니다.
이 예시에서, latency
는 기본 제공 Latency 측정의 슬러그입니다.
기본적으로 각 프로젝트는 Latency(예: latency
)와 Throughput(예: throughput
) 측정을 가지고 있으며,
이는 각각 나노초(ns)
와 초당 연산(ops/s)
으로 측정됩니다.
측정 객체는 최대 세 개의 값이 있는 메트릭을 포함합니다:
value
, lower_value
, upper_value
.
lower_value
와 upper_value
값은 선택 사항입니다.
이 예시에서, latency
측정 객체는 다음과 같은 값을 포함합니다:
value
값은88.0
lower_value
값은87.42
upper_value
값은88.88
만약 ./run/my/benchmarks.sh
에 위치한 스크립트가 벤치마크를 실행하고 그 결과를 BMF JSON으로 표준 출력에 출력했다면,
다음 명령어를 이용하여
bencher run
및 the json
어댑터을 사용하여 추적할 수 있습니다:
만약 여러분의 결과가 results.json
이라는 파일에 저장되어 있다면, 파일 경로를 지정하기 위해 --file
옵션을 사용할 수 있습니다.
이것은 벤치마크 명령어가 있는 경우와 없는 경우 모두에서 작동합니다.
벤치마크 명령어가 있는 경우:
벤치마크 명령어가 없는 경우:
여러 측정
벤처 메트릭 형식 (BMF) JSON에서 벤치마크 객체는 여러 측정 이름, 슬러그 또는 UUID를 키로 포함할 수 있습니다. 지정된 값이 이름 또는 슬러그이고 측정이 이미 존재하지 않는 경우, 자동으로 생성됩니다. 하지만 지정된 값이 UUID인 경우, 측정이 이미 존재해야 합니다. 각 측정 객체는 최대 세 가지 값, value
, lower_value
, 및 upper_value
를 포함하는 메트릭이 필요합니다. lower_value
및 upper_value
값은 선택 사항입니다.
다음은 여러 측정을 포함한 BMF JSON의 예제입니다:
이 예제에서 latency
측정 객체는 다음 값을 포함합니다:
value
는88.0
lower_value
는87.42
upper_value
는88.88
그리고 throughput
측정 객체는 다음 값을 포함합니다:
value
는5.55
lower_value
는3.14
upper_value
는6.30
당신은 bencher mock
CLI 서브 명령어를 --measure
옵션과 함께 사용하여 여러 측정을 포함한 모의 BMF 데이터를 생성할 수 있습니다. 우리는 이를 자체 커스텀 벤치마크 실행기용 자리표시자로 사용할 것입니다. 벤처 실행
및 json
어댑터를 사용하여 다음 명령어로 여러 측정을 가진 벤치마크를 추적할 수 있습니다:
🐰 축하합니다! 커스텀 벤치마크를 추적하는 방법을 배웠습니다! 🎉