벤치마킹 개요
대부분의 벤치마크 결과는 일시적입니다. 터미널의 스크롤백 한도에 도달하면 사라집니다. 일부 벤치마크 하네스는 결과를 캐시할 수 있게 해주지만, 대부분은 로컬에서만 가능합니다. Bencher를 사용하면 로컬 및 CI 실행에서 벤치마크를 추적하고 과거 결과와 비교할 수 있습니다.
벤치마크를 추적하는 가장 쉬운 방법은 bencher run
CLI 서브커맨드입니다.
기존의 벤치마크 하네스 출력을 래핑하고 보고서를 생성합니다.
이 보고서는 Bencher API 서버로 전송되며,
여기서 벤치마크 하네스 출력은 벤치마크 하네스 어댑터를 사용하여 파싱됩니다.
벤치마크 하네스 어댑터는 모든 벤치마크와 해당 메트릭을 감지합니다.
이러한 벤치마크와 메트릭은 보고서와 함께 저장됩니다.
임계값이 설정되어 있는 경우,
새로운 메트릭은 보고서에 있는 각 벤치마크의 과거 메트릭과 비교됩니다.
회귀가 감지되면 경고가 생성됩니다.
이제부터 “벤치마크”를 “성능 회귀 테스트”라고 부르겠습니다. 혼동을 피하기 위해서입니다.
벤치마크
벤치마크는 이름이 지정된 성능 회귀 테스트입니다. 성능 회귀 테스트가 Bencher에 새로운 경우, 벤치마크가 자동으로 생성됩니다. 그렇지 않으면, 성능 회귀 테스트의 이름이 벤치마크의 고유 식별자로 사용됩니다.
성능 회귀 테스트의 이름을 변경할 때 주의하십시오. Bencher에서 이 새로운 이름에 맞춰 벤치마크의 이름을 수동으로 변경해야 합니다. 그렇지 않으면, 이름이 변경된 성능 회귀 테스트는 새로운 벤치마크로 간주됩니다. 성능 회귀 테스트를 이동 시킬 때도 동일한 주의가 필요합니다. 벤치마크 하네스에 따라 성능 회귀 테스트의 경로가 이름의 일부가 될 수 있습니다.
위의 주의 사항에 대한 유일한 예외는 벤치마크를 무시하는 경우입니다. 전체 개요는 알림 억제를 참조하세요.
Metric
Metric은 특정 시점의 성능 퇴보 테스트 결과를 나타내는 단일 값입니다. 하나의 Metric에 대해 최대 세 가지 값인 value
, lower_value
및 upper_value
를 수집할 수 있습니다. value
는 모든 Metric에서 필수이며, lower_value
와 upper_value
는 각각 독립적으로 선택 사항입니다. 어떤 값들이 수집되는지는 벤치마크 하네스 어댑터에 의해 결정됩니다.
Measure
Measure는 Metric의 측정 단위입니다. 기본적으로 모든 프로젝트는 nanoseconds (ns)
및 operations / second (ops/s)
단위를 사용하는 Latency
및 Throughput
Measure로 시작합니다. Measure는 벤치마크 하네스 어댑터에 의해 결정됩니다.
Report
리포트는 특정 브랜치와 테스트베드에 대한 벤치마크 및 해당 메트릭의 모음입니다. 리포트는 대부분 bencher run
CLI 서브커맨드를 사용하여 생성됩니다. 성능 퇴보 테스트를 추적하는 방법에 대한 전체 개요는 성능 퇴보 테스트 추적 방법을 참조하세요.
Branch
Branch는 보고서를 실행할 때 사용되는 git
참조입니다 (즉, 브랜치 이름 또는 태그).
기본적으로 모든 프로젝트는 main
브랜치로 시작합니다.
bencher run
CLI 하위 명령어를 사용할 때,
main
은 제공된 브랜치가 없을 경우 기본 브랜치입니다.
브랜치 선택에서 전체 개요를 확인하세요.
Head
브랜치의 Head는 해당 브랜치의 가장 최근 인스턴스입니다. 가장 최근의 시작 지점을 참조하며, 만약 시작 지점이 있다면 해당 지점을 참조합니다. 브랜치가 새로운 시작 지점을 얻을 때마다 새로운 Head를 갖게 됩니다. 전체 개요는 브랜치 선택을 참조하세요.
시작 지점
분기는 시작 지점을 가질 수 있습니다. 시작 지점은 특정 버전(그리고 사용 가능한 경우 git
해시)의 다른 분기입니다. 시작 지점에서 히스토리 메트릭과 선택적으로 임계값이 복사됩니다. 전체 개요는 분기 선택을 참조하세요.
Testbed
Testbed는 리포트를 실행할 때 사용하는 테스트 환경의 이름입니다.
기본적으로 모든 프로젝트는 localhost
Testbed로 시작합니다.
bencher run
CLI 서브커맨드를 사용할 때, 제공되지 않으면 localhost
가 기본 Testbed입니다.
임계치
임계치는 성능 퇴행을 감지하는 데 사용됩니다. 임계치는 다음의 고유한 조합에 할당됩니다: 브랜치, 테스트베드 및 측정값. 전체 개요는 임계치를 참조하세요.
테스트
테스트는 임계값이 성능 저하를 감지하는 데 사용됩니다. 테스트와 그 매개변수의 조합을 모델이라고 합니다. 전체 개요는 임계값을 참조하세요.
모델
모델은 테스트 및 임계값에 대한 그 매개변수의 조합입니다. 모델은 하한선, 상한선, 또는 둘 다를 가져야 합니다.
- 하한선
- 하한선은 값이 작을수록 성능 저하를 나타낼 때 사용됩니다. 예를 들어,
처리량
측정치가 그러한 경우입니다.
- 하한선은 값이 작을수록 성능 저하를 나타낼 때 사용됩니다. 예를 들어,
- 상한선
- 상한선은 값이 클수록 성능 저하를 나타낼 때 사용됩니다. 예를 들어,
대기 시간
측정치가 그러한 경우입니다.
- 상한선은 값이 클수록 성능 저하를 나타낼 때 사용됩니다. 예를 들어,
각 경계는 경계 한계를 계산하는 데 사용됩니다. 그 후 모든 새로운 메트릭은 각각의 경계 한계에 대해 점검됩니다. 새로운 메트릭이 하한선 경계 한계보다 낮거나 상한선 경계 한계를 초과하면 경고가 생성됩니다. 전체 개요는 임계값을 참조하십시오.
경계 한계
경계 한계는 하한 경계 또는 상한 경계에서 계산된 값입니다. 이는 새로운 메트릭과 비교하는 데 사용됩니다. 새로운 메트릭이 하한 경계 한계보다 낮거나 상한 경계 한계보다 높을 때 경고가 생성됩니다. 전체 개요는 임계값을 참조하십시오.
Alert
경고는 새로운 메트릭이 테스트에 실패하여 하한 한계보다 낮거나 상한 한계를 초과할 때 생성됩니다. 전체 개요는 임계값을 참조하십시오.
🐰 축하합니다!
벤치마크성능 회귀 테스트 추적에 대해 모두 배웠습니다! 🎉