Repolode
dotnet

dotnet/BenchmarkDotNet

.NET용 라이브러리로, C# 메서드를 자동 워밍업과 통계 및 결과 보고서를 갖춘 재현 가능한 벤치마크로 바꿔 줍니다.

스타
11,526
포크
1,080
열린 이슈
168
마지막 커밋
18시간 전

어떤 프로젝트인가요?

BenchmarkDotNet을 사용하면 단위 테스트를 작성하는 것과 비슷한 방식으로 메서드에 특성을 지정해 일반 메서드를 벤치마크로 만들 수 있습니다. 직접 처리할 때 실수하기 쉬운 파일럿 실행, 워밍업 및 측정 반복, 데드 코드 제거 방지, 디버거 연결, DEBUG 빌드 또는 가상화된 호스트에 대한 경고를 제공하는 환경 검사 등을 라이브러리가 처리합니다.

[Params]로 벤치마크 매개변수를 설정하고 기준선과 비교하거나 .NET Framework, .NET Core, .NET 5+, Mono, NativeAOT 등 여러 런타임에서 실행할 수 있습니다. 결과는 Mean, Error, StdDev 같은 통계를 포함한 요약 표로 출력되며 Markdown, HTML, CSV, XML, JSON 및 그래프로 내보낼 수 있습니다. 메모리 진단과 디스어셈블리 목록도 지원합니다.

BenchmarkDotNet은 Windows, Linux, macOS에서 실행되며 C#, F#, Visual Basic을 지원합니다. 지원 아키텍처로는 x86, x64, ARM, ARM64, Wasm, LoongArch64가 명시되어 있습니다.

핵심 기능

  • 01[Benchmark], [Params] 같은 특성으로 메서드를 벤치마크로 만들 수 있습니다.
  • 02파일럿 실행, 워밍업, 통계를 기반으로 한 반복 횟수를 자동으로 처리합니다.
  • 03벤치마크를 기준선과 비교하고 여러 .NET 런타임에서 실행할 수 있습니다.
  • 04결과를 Markdown, HTML, CSV, JSON 및 그래프로 내보낼 수 있습니다.
  • 05관리 및 네이티브 메모리 할당량을 측정하고 디스어셈블리 목록을 확인할 수 있습니다.

활용 사례

  • .NET 서비스의 핫 패스 코드를 변경했을 때 실제로 성능이 향상되는지 측정합니다.
  • 여러 런타임에서 해시 함수 같은 대체 알고리즘이나 라이브러리 API의 성능을 비교합니다.
  • .NET 버전 또는 NativeAOT 빌드 간 성능 회귀를 확인합니다.
  • 표준 보고서 형식으로 재현 가능한 성능 실험 결과를 팀원과 공유합니다.

빠른 시작

  1. 1

    .NET 콘솔 애플리케이션을 만들고 BenchmarkDotNet NuGet 패키지를 추가합니다

  2. 2

    클래스의 메서드에 [Benchmark]를 표시하고 콘솔 앱의 진입점에서 벤치마크를 실행합니다

사용 전 알아둘 점

  • 벤치마크는 콘솔 애플리케이션에서 실행해야 합니다. 다른 유형의 애플리케이션은 지원되지 않습니다.
  • BenchmarkDotNet은 올바른 벤치마크 설계에 대한 지식을 대신하지 않으며, 결과도 신중하게 해석해야 합니다.

토픽

자주 묻는 질문

BenchmarkDotNet은(는) 무엇인가요?
.NET용 라이브러리로, C# 메서드를 자동 워밍업과 통계 및 결과 보고서를 갖춘 재현 가능한 벤치마크로 바꿔 줍니다. BenchmarkDotNet을 사용하면 단위 테스트를 작성하는 것과 비슷한 방식으로 메서드에 특성을 지정해 일반 메서드를 벤치마크로 만들 수 있습니다. 직접 처리할 때 실수하기 쉬운 파일럿 실행, 워밍업 및 측정 반복, 데드 코드 제거 방지, 디버거 연결, DEBUG 빌드 또는 가상화된 호스트에 대한 경고를 제공하는 환경 검사 등을 라이브러리가 처리합니다.
BenchmarkDotNet은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
BenchmarkDotNet은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
BenchmarkDotNet은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. BenchmarkDotNet의 마지막 커밋은 2026년 11월 6일입니다.
BenchmarkDotNet은(는) 어디에 사용할 수 있나요?
.NET 서비스의 핫 패스 코드를 변경했을 때 실제로 성능이 향상되는지 측정합니다. 여러 런타임에서 해시 함수 같은 대체 알고리즘이나 라이브러리 API의 성능을 비교합니다. .NET 버전 또는 NativeAOT 빌드 간 성능 회귀를 확인합니다. 표준 보고서 형식으로 재현 가능한 성능 실험 결과를 팀원과 공유합니다.
BenchmarkDotNet는 어떻게 설치하나요?
.NET 콘솔 애플리케이션을 만들고 BenchmarkDotNet NuGet 패키지를 추가합니다 클래스의 메서드에 [Benchmark]를 표시하고 콘솔 앱의 진입점에서 벤치마크를 실행합니다
BenchmarkDotNet은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dotnet/BenchmarkDotNet

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트