# dotnet/BenchmarkDotNet

Powerful .NET library for benchmarking

Repository: https://github.com/dotnet/BenchmarkDotNet
Canonical: https://ross.abutalabs.com/products/benchmarkdotnet
Homepage: https://benchmarkdotnet.org
Language: C#
License: MIT
License Family: permissive
Topics: benchmark, benchmarking, c-sharp, dotnet, performance, csharp, hacktoberfest
Last push: 2026-08-16T16:57:46+00:00

## Health v2 (maintenance only)
Score: 85/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 59, longevity 100
- inputs: {"age_days": 4763, "days_push": 17, "days_rel": 276, "gap_med": 12.0, "n_releases_24m": 9}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11484, forks 1063 (observed 2026-08-28T04:10:48.287137+00:00)

## What it is
BenchmarkDotNet is a powerful .NET library for benchmarking that transforms methods into benchmarks and produces reliable, statistically sound performance measurements. It automates benchmark execution across multiple runtimes, guards against common benchmarking pitfalls, and presents results in user-friendly summary tables.

## Use cases
- benchmark c# methods
- compare performance of two algorithms in .net
- measure method execution time in dotnet
- run benchmarks across multiple .net runtimes
- generate reproducible performance reports
- detect performance regressions in .net code

## When to choose
- you need accurate microbenchmarks for .NET code with statistical rigor
- you want to compare methods across runtimes like .NET Framework, .NET Core, Mono, or NativeAOT
- you want to avoid common benchmarking mistakes like unoptimized builds or insufficient warmup

## When to avoid
- you are benchmarking non-.NET languages or platforms
- you need load testing or end-to-end HTTP performance testing rather than microbenchmarks
- you need profiling (memory allocation traces, CPU sampling) rather than timing measurements

## Facets
- artifact type: library
- maturity: stable
- function: benchmarking, developer-tools
- domain: performance, developer-tools
- platform: cross-platform, windows, dotnet
- tags: csharp, microbenchmarking, performance-measurement, statistics, nuget, dotnet, linux, macos

## Member repositories
- dotnet/BenchmarkDotNet (main) score 85

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:48.287137+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:15:33.535287+00:00, confidence not recorded.
  - readme: https://github.com/dotnet/BenchmarkDotNet (fetched 2026-08-28T04:10:48.287137+00:00, sha 15146acb638a)
  - homepage: https://benchmarkdotnet.org (fetched 2026-08-29T08:14:13.411510+00:00, sha a9c1393ff4aa)
  - site_page: https://benchmarkdotnet.org/articles/guides/getting-started.html (fetched 2026-08-29T08:14:13.421269+00:00, sha 19ab8315aaf1)
  - site_page: https://benchmarkdotnet.org/articles/features/parameterization.html (fetched 2026-08-29T08:14:13.425346+00:00, sha d8ba227c474b)
  - site_page: https://benchmarkdotnet.org/articles/features/baselines.html (fetched 2026-08-29T08:14:13.427811+00:00, sha 6c33c2bd88ec)
  - site_page: https://benchmarkdotnet.org/articles/overview.html (fetched 2026-08-29T08:14:13.423262+00:00, sha 098cbacd1144)
- Data as of 2026-08-30T08:39:29.467469+00:00.
