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)
- Documentation
- NuGet Packages
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.
This project is supported by the .NET Foundation.