Search Results for

    Show / Hide Table of Contents

    Class ConfigExtensions

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

    When building a config in BenchmarkDotNet to run your benchmarks, there are essentially two ways of doing it:

    • You can start from scratch with an empty config and most likely end up forgetting to add some essential item.
    • You can use the predefined DefaultConfig.Instance and probably get some ingredients you don't have any use for, but which are hard to get rid of once they are part of the config.

    This is where these extensions come in handy. You can use the default config - or any other preexisting one - and replace parts of it. Don't like the default three exporters (HTML, CSV, GitHub Markdown) and prefer the leaner Console Markdown exporter?

    ManualConfig config = DefaultConfig.Instance.ReplaceExporters(MarkdownExporter.Console);
    

    Only want the statistical Mean column, not all the other ones, like StdDev and Error?

    ManualConfig config = DefaultConfig.Instance.ReplaceColumnCategory(StatisticColumn.Mean);
    

    Which of course leads to the custom columns that are part of this library:

    ManualConfig config = DefaultConfig.Instance.ReplaceColumnCategory(
        new JobColumnSelectionProvider("-run +runstrategy"),
        new RecyclableParamsColumnProvider()
        );
    
    Note

    When you use the extensions with a ManualConfig, that config is modified and returned.

    When you use the extensions with any other IConfig (as in the examples above), the source config remains untouched and a new instance of ManualConfig with the changes applied is returned.

    Inheritance
    Object
    ConfigExtensions
    Namespace: Mawosoft.Extensions.BenchmarkDotNet
    Assembly: Mawosoft.Extensions.BenchmarkDotNet.dll
    Syntax
    public static class ConfigExtensions : Object

    Methods

    RemoveColumnsByCategory(IConfig, ColumnCategory[])

    Removes existing columns of the specified category or categories.

    Note

    In BenchmarkDotNet, the ColumnCategory.Job encompasses not only the real job characteristic columns, but also the method descriptor columns and the categories column.

    This method will not remove the latter two column types if the removal of ColumnCategory.Job is requested.

    Declaration
    public static ManualConfig RemoveColumnsByCategory(this IConfig config, params ColumnCategory[] categories)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    ColumnCategory[] categories

    The column categories to remove.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    RemoveColumnsByCategory(ManualConfig, ColumnCategory[])

    Removes existing columns of the specified category or categories.

    Note

    In BenchmarkDotNet, the ColumnCategory.Job encompasses not only the real job characteristic columns, but also the method descriptor columns and the categories column.

    This method will not remove the latter two column types if the removal of ColumnCategory.Job is requested.

    Declaration
    public static ManualConfig RemoveColumnsByCategory(this ManualConfig config, params ColumnCategory[] categories)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    ColumnCategory[] categories

    The column categories to remove.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceAnalysers(IConfig, IAnalyser[])

    Replaces all analysers with the given new ones.

    Declaration
    public static ManualConfig ReplaceAnalysers(this IConfig config, params IAnalyser[] newAnalysers)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IAnalyser[] newAnalysers

    The new analyzers to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceAnalysers(ManualConfig, IAnalyser[])

    Replaces all analyzers with the given new ones.

    Declaration
    public static ManualConfig ReplaceAnalysers(this ManualConfig config, params IAnalyser[] newAnalysers)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IAnalyser[] newAnalysers

    The new analyzers to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceColumnCategory(IConfig, IColumn[])

    Replaces existing columns belonging to the same category or categories as newColumns with the given new ones.

    Declaration
    public static ManualConfig ReplaceColumnCategory(this IConfig config, params IColumn[] newColumns)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IColumn[] newColumns

    The new columns to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceColumnCategory(IConfig, IColumnProvider[])

    Replaces existing columns belonging to the same category or categories as newColumnProviders with the given new ones.

    Declaration
    public static ManualConfig ReplaceColumnCategory(this IConfig config, params IColumnProvider[] newColumnProviders)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IColumnProvider[] newColumnProviders

    The new column providers to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceColumnCategory(ManualConfig, IColumn[])

    Replaces existing columns belonging to the same category or categories as newColumns with the given new ones.

    Declaration
    public static ManualConfig ReplaceColumnCategory(this ManualConfig config, params IColumn[] newColumns)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IColumn[] newColumns

    The new columns to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceColumnCategory(ManualConfig, IColumnProvider[])

    Replaces existing columns belonging to the same category or categories as newColumnProviders with the given new ones.

    Declaration
    public static ManualConfig ReplaceColumnCategory(this ManualConfig config, params IColumnProvider[] newColumnProviders)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IColumnProvider[] newColumnProviders

    The new column providers to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceDiagnosers(IConfig, IDiagnoser[])

    Replaces all diagnosers with the given new ones.

    Declaration
    public static ManualConfig ReplaceDiagnosers(this IConfig config, params IDiagnoser[] newDiagnosers)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IDiagnoser[] newDiagnosers

    The new diagnosers to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceDiagnosers(ManualConfig, IDiagnoser[])

    Replaces all diagnosers with the given new ones.

    Declaration
    public static ManualConfig ReplaceDiagnosers(this ManualConfig config, params IDiagnoser[] newDiagnosers)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IDiagnoser[] newDiagnosers

    The new diagnosers to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceExporters(IConfig, IExporter[])

    Replaces all exporters with the given new ones.

    Declaration
    public static ManualConfig ReplaceExporters(this IConfig config, params IExporter[] newExporters)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IExporter[] newExporters

    The new exporters to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceExporters(ManualConfig, IExporter[])

    Replaces all exporters with the given new ones.

    Declaration
    public static ManualConfig ReplaceExporters(this ManualConfig config, params IExporter[] newExporters)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IExporter[] newExporters

    The new exporters to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceFilters(IConfig, IFilter[])

    Replaces all filters with the given new ones.

    Declaration
    public static ManualConfig ReplaceFilters(this IConfig config, params IFilter[] newFilters)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IFilter[] newFilters

    The new filters to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceFilters(ManualConfig, IFilter[])

    Replaces all filters with the given new ones.

    Declaration
    public static ManualConfig ReplaceFilters(this ManualConfig config, params IFilter[] newFilters)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IFilter[] newFilters

    The new filters to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceHardwareCounters(IConfig, HardwareCounter[])

    Replaces all hardware counters with the given new ones.

    Declaration
    public static ManualConfig ReplaceHardwareCounters(this IConfig config, params HardwareCounter[] newHardwareCounters)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    HardwareCounter[] newHardwareCounters

    The new hardware counters to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceHardwareCounters(ManualConfig, HardwareCounter[])

    Replaces all hardware counters with the given new ones.

    Declaration
    public static ManualConfig ReplaceHardwareCounters(this ManualConfig config, params HardwareCounter[] newHardwareCounters)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    HardwareCounter[] newHardwareCounters

    The new hardware counters to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceJobs(IConfig, Job[])

    Replaces all jobs with the given new ones.

    Declaration
    public static ManualConfig ReplaceJobs(this IConfig config, params Job[] newJobs)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    Job[] newJobs

    The new jobs to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceJobs(ManualConfig, Job[])

    Replaces all jobs with the given new ones.

    Declaration
    public static ManualConfig ReplaceJobs(this ManualConfig config, params Job[] newJobs)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    Job[] newJobs

    The new jobs to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceLoggers(IConfig, ILogger[])

    Replaces all loggers with the given new ones.

    Declaration
    public static ManualConfig ReplaceLoggers(this IConfig config, params ILogger[] newLoggers)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    ILogger[] newLoggers

    The new loggers to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceLoggers(ManualConfig, ILogger[])

    Replaces all loggers with the given new ones.

    Declaration
    public static ManualConfig ReplaceLoggers(this ManualConfig config, params ILogger[] newLoggers)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    ILogger[] newLoggers

    The new loggers to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceLogicalGroupRules(IConfig, BenchmarkLogicalGroupRule[])

    Replaces all logical group rules with the given new ones.

    Declaration
    public static ManualConfig ReplaceLogicalGroupRules(this IConfig config, params BenchmarkLogicalGroupRule[] newLogicalGroupRules)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    BenchmarkLogicalGroupRule[] newLogicalGroupRules

    The new logical group rules to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceLogicalGroupRules(ManualConfig, BenchmarkLogicalGroupRule[])

    Replaces all logical group rules with the given new ones.

    Declaration
    public static ManualConfig ReplaceLogicalGroupRules(this ManualConfig config, params BenchmarkLogicalGroupRule[] newLogicalGroupRules)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    BenchmarkLogicalGroupRule[] newLogicalGroupRules

    The new logical group rules to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    ReplaceValidators(IConfig, IValidator[])

    Replaces all validators with the given new ones.

    Declaration
    public static ManualConfig ReplaceValidators(this IConfig config, params IValidator[] newValidators)
    Parameters
    Type Name Description
    IConfig config

    The source config.

    IValidator[] newValidators

    The new validators to be added.

    Returns
    Type Description
    ManualConfig

    A new instance of ManualConfig with changes applied.

    ReplaceValidators(ManualConfig, IValidator[])

    Replaces all validators with the given new ones.

    Declaration
    public static ManualConfig ReplaceValidators(this ManualConfig config, params IValidator[] newValidators)
    Parameters
    Type Name Description
    ManualConfig config

    The config to be changed.

    IValidator[] newValidators

    The new validators to be added.

    Returns
    Type Description
    ManualConfig

    The existing ManualConfig with changes applied.

    See Also

    Config Extension Samples and Column Display Samples on GitHub
    In This Article
    Back to top Copyright © 2021-2023 Matthias Wolf, Mawosoft