BenchmarkDotNet is a library and tool suite for measuring the execution time and memory allocation of .NET code. It utilizes statistical sampling and warm-up iterations to determine the stability and precise execution speed of specific methods.
The project provides a JIT disassembly viewer to inspect processor disassembly and analyze how the compiler executes code paths. It includes a memory allocation profiler that tracks managed and native memory traffic to identify efficiency bottlenecks. Additionally, a runtime performance comparator allows the same benchmarks to be executed across different .NET runtimes and configurations to identify environment variances.
The toolset covers performance analysis through the generation of summary reports and the tracking of statistical outliers against established baselines. It also includes reliability verification to detect attached debuggers or non-optimized builds that could invalidate measurement results.