위키득계정 ↗
기술

BenchmarkDotNet

BenchmarkDotNet기술
분야
코드 성능 측정
실행 환경
닷넷
비교 축
메서드와 실행 구성
출력
통계 요약과 측정 자료
BenchmarkDotNet은 닷넷 코드의 성능을 반복 측정하고 결과를 비교하는 벤치마크 라이브러리다. 준비 실행과 측정 횟수 조절, 통계 요약을 자동화하여 성능 실험의 재현성을 높이는 데 사용한다.

시간을 재는 것 이상의 작업

짧은 코드를 한 번 실행한 시간에는 초기화와 실행 환경의 영향이 크게 섞인다. BenchmarkDotNet은 준비 실행과 반복 측정 등을 관리해 이러한 실험을 체계화한다. 측정할 메서드를 지정하고 입력을 매개변수로 구성하면 여러 조건에서 성능 차이를 살펴볼 수 있다.

비교 조건 맞추기

기준 메서드를 정해 상대적인 차이를 표시하거나 실행 환경을 달리한 작업을 구성할 수 있다. 진단 기능으로 메모리 할당이나 생성된 기계어를 살펴보는 방식도 제공한다. 지원 범위는 진단기와 환경에 따라 다르다. 출력되는 평균만 보지 말고 변동성과 실행 조건을 함께 읽어야 한다.

측정 결과의 해석

도구가 반복 실행을 관리하더라도 실험의 질문까지 정해 주지는 않는다. 서로 다른 일을 하는 메서드를 비교하거나 실제 사용과 동떨어진 입력을 고르면 결론이 잘못될 수 있다. 디버거와 최적화 상태도 결과에 영향을 준다. 작은 코드의 벤치마크 결과는 전체 서비스의 지연 시간이나 처리량과 구분해서 해석한다.

관련 문서

Pytest-benchmark / Grafana k6 / Gatling / Locust