/BenchmarkDotNet

Powerful .NET library for benchmarking

Primary LanguageC#MIT LicenseMIT

BenchmarkDotNet is a powerful .NET library for benchmarking.

NuGet Gitter Build status License Overview ChangeLog

Summary

  • 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)

Useful links

Code of Conduct

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.

.NET Foundation

This project is supported by the .NET Foundation.