dotnet/benchmarkdotnet

Powerful .NET library for benchmarking

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 38 minutes ago
Added to GitGenius on September 5th, 2026
Created on August 18th, 2013
Open Issues & Pull Requests: 170 (+0)
GitHub issues: Enabled
Number of forks: 1,066
Total Stargazers: 11,490 (+0)
Total Subscribers: 252 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 13.1 hours
Mean response time: 65.5 days
90th percentile: 159.2 days
Tracked items: 310

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 74% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "bug" is answered fastest, typically in about 4 hours, while "Area:CodeGen" waits about 8 days. Only 4% of issues opened in the past year have been closed. Three people close 88% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 72
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 1,552 days
Stale 30+ days: 64
Stale 90+ days: 59

Recent activity

Opened in 7 days: 1
Closed in 7 days: 3
Comments in 7 days: 1
Events in 7 days: 8

Top labels

  • Area:Toolchains (35)
  • good first issue (30)
  • bug (28)
  • enhancement (28)
  • up-for-grabs (27)
  • Area:Diagnosers (26)
  • help wanted (14)
  • Area:CodeGen (13)

Detailed Description

BenchmarkDotNet is a .NET library for benchmarking that transforms methods into performance benchmarks, tracks their results, and enables reproducible measurement experiments.

The tool addresses the challenge of measuring .NET code performance accurately by automating much of the work that would otherwise fall to developers. It handles the low-level details of reliable benchmarking: running code multiple times under controlled conditions, managing different runtime environments, and applying statistical analysis through its integrated perfolizer and pragmastat statistical engines. The library warns developers when benchmark design is flawed or measurements appear unreliable, protecting against common pitfalls in performance testing.

Developers should adopt this tool if they need to measure and track performance changes in .NET codebases. It suits projects ranging from small performance investigations to comprehensive performance regression testing across multiple runtimes and platforms. The tool supports .NET 5+, .NET Framework 4.6.1+, .NET Core 2.0+, Mono, and NativeAOT, running on Windows, Linux, and macOS across x86, x64, ARM, ARM64, Wasm, and LoongArch64 architectures. It works with C#, F#, and Visual Basic. Results can be exported to multiple formats including markdown, HTML, CSV, XML, and JSON, with support for generating plots alongside tabular summaries.

The project maintains active engagement with its user base through comprehensive documentation and a getting-started guide designed for developers without deep performance engineering expertise. Development activity shows consistent attention to both new capabilities and the reliability of existing features, with the codebase demonstrating careful handling of the statistical and measurement concerns central to benchmarking work. The tool has achieved adoption across major .NET projects including the .NET Runtime, .NET Compiler, and .NET Performance repositories, indicating sustained confidence in its approach and results.