BenchmarkDotNet is a powerful .NET library for benchmarking.
- Standard benchmarking routine: generating an isolated project per each benchmark method; auto-selection of iteration amount; warmup; overhead evaluation; statistics calculation; and so on.
- Supported runtimes: Full .NET Framework, .NET Core (RTM), Mono
- Supported languages: C#, F#, and Visual Basic
- Supported OS: Windows, Linux, MacOS
- Easy way to compare different environments (
x86
vsx64
,LegacyJit
vsRyuJit
, and so on; see: Jobs) - Reports: markdown, csv, html, plain text, png plots.
- Advanced features: Baseline, Params
- Powerful diagnostics based on ETW events (see BenchmarkDotNet.Diagnostics.Windows)