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 vs x64, LegacyJit vs 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)

Project Details