Skip to content

mawosoft/Mawosoft.Extensions.BenchmarkDotNet

Repository files navigation

Mawosoft Extensions for BenchmarkDotNet

NuGet CI/CD License

An extensions library to support benchmarking with BenchmarkDotNet.

Overview · Documentation · Samples

Column Display

  • CombinedParamsColumn
    An alternative to DefaultColumnProviders.Params that displays all parameters in a single, customizable column.

  • RecyclableParamsColumnProvider
    An alternative to DefaultColumnProviders.Params that displays parameters in recyclable columns corresponding to parameter position rather than name.

  • ParamWrapper<T>
    A generic wrapper to associate strongly typed parameter or argument values with a display text.

  • JobColumnSelectionProvider
    An alternative to DefaultColumnProviders.Job, with a user-defined selection of Job columns.

Configuration and Running

  • BenchmarkRunInfos
    A wrapper and extension for BenchmarkConverter, collecting the converted benchmarks, executing them, and optionally overriding any global and local Job configurations.

  • ConfigExtensions
    ManualConfig and IConfig extension methods for replacing parts of an existing config - for example, default columns with custom ones.

  • WhatifFilter
    An alternative to BenchmarkDotNet's --list command line option that prints a mock summary of all available benchmarks according to the current effective BechmarkDotnet configuration.

If you use BenchmarkDotNet's CI builds (nightlies), you also need to use the latest CI builds here, because BenchmarkDotNet frequently introduces breaking API changes within their builds.

To consume the latest CI build, add the following feed to your Nuget.Config:

<configuration>
  <packageSources>
    <add key="mawosoft-nightly" value="https://pkgs.dev.azure.com/mawosoft-de/public/_packaging/public/nuget/v3/index.json" />
  </packageSources>
</configuration>

The CI builds have the next expected version number and are tagged as -dev.<number>.

  • Example of an official release: Mawosoft.Extensions.BenchmarkDotNet.0.2.3.nupkg
  • Example of CI build: Mawosoft.Extensions.BenchmarkDotNet.0.2.4-dev.112.nupkg
    To always use the latest CI build, use a package reference like
    <PackageReference Include="Mawosoft.Extensions.BenchmarkDotNet" Version="*-*" />