BenchmarkDotNet is a powerful .NET library for benchmarking.
Source code is available at github.com/dotnet/BenchmarkDotNet
- 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 (
RyuJit, 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)