Skip to content
CAI
Produce a survey ↗Verify a survey

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

CAI band scale
CAI trend line

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

CAI lens gauges

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.

Survey a repository

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.
CAI link cards