dotnet/BenchmarkDotNet
This system is a comprehensive .NET benchmarking framework that provides a robust engine for measuring and analyzing code performance. It supports diverse execution modes, including in-process and out-of-process runs across multiple .NET versions and platforms, while offering deep diagnostic capabilities such as memory profiling, disassembly, and hardware counter analysis. The framework also includes a static analysis layer to validate benchmark configurations at compile time and generates detailed reports in various formats, including statistical summaries, plots, and structured data exports.
68.7
Adequate · 5 August 2026
50k
lines of production code
C#
primary language
2
bus factor · 303 authors in all
2
measurements over time
How it got here
2013–2016 · Architectural refactoring and modernization
This period was defined by a comprehensive architectural overhaul of the BenchmarkDotNet framework, introducing a fluent configuration API, attribute-based setup, and a modular toolchain system. The team modernized the codebase by migrating to .NET 10, updating project formats, and refactoring core components like the engine, exporters, and diagnosers. Extensive unit and integration tests were added to validate these changes and ensure stability across multiple .NET versions.
47 changes
2017–2019 · Architecture modernization and extensibility
This period focused on a comprehensive architectural refactoring of the BenchmarkDotNet codebase, introducing a modular engine, a new characteristic system, and a flexible filtering framework. The team expanded runtime support to include .NET 10/11, WebAssembly, and NativeAOT, while also adding in-process execution and Roslyn-based toolchains. Significant effort was also dedicated to improving test coverage and establishing project templates for easier adoption.
41 changes
2020–2025 · Platform and toolchain expansion
This period focused on significantly expanding BenchmarkDotNet's execution capabilities by introducing new toolchains for WebAssembly, NativeAOT, and in-process IL emission. The scope of supported platforms was broadened to include ARM64 disassembly, macOS CPU detection, and .NET 10/11 support, while the build system was refactored for better maintainability.
47 changes
2026 · Serialization and test infrastructure modernization
The project replaced the external SimpleJson library with System.Text.Json, introducing new serialization classes and custom converters for handling special numeric values. Concurrently, the test suite was expanded with comprehensive coverage for serialization, environment detection, and benchmark execution, alongside the introduction of mock implementations and environment-specific test attributes.
7 changes
Survey your own repository
dotnet/BenchmarkDotNet was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.
About this page
- The description of this project is derived from its own commit history, not from its README.
- The score is its highest published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ff369f66cf — the exact code this score is about.
- Scored under rubric rubric-2026.08.19. Score the same commit under that rubric and you get the same number.