how I can get rid of the default exporters
If you don't want the default settings, you need to create an empty config and add everything you need in an explicit way. The minimal config that prints results to the console:
var config = ManualConfig.CreateEmpty()
.AddColumnProvider(DefaultColumnProviders.Instance)
.AddLogger(ConsoleLogger.Default);
// here you can add your exporter by using config.AddExporter()
// and pass it to BenchmarkRunner or BenchmarkSwitcher
I've created a PR that is going to make it easier in the next release: https://github.com/dotnet/BenchmarkDotNet/pull/1582
Please feel free to create an issue in the BDN repo and suggest a new API|solution if you find the current solution too complex.
is the order that the exporters are run in guaranteed?
It's guaranteed to be sorted by the dependencies requirements:
https://github.com/dotnet/BenchmarkDotNet/blob/81c234d11cab1b3beb0e60cf0f5c4c92e60a41e6/src/BenchmarkDotNet/Configs/ImmutableConfigBuilder.cs#L117
An example is the RPlot
exporter that relies on having the CSV
exporter doing it's job first:
https://github.com/dotnet/BenchmarkDotNet/blob/27887d4b612312c74c63c0c3220351f8db8e81e4/src/BenchmarkDotNet/Exporters/RPlotExporter.cs#L22-L26