根据文档BenchmarkDotnet的默认导出程序为:csv、html和markdown
我可以看到如何添加我自己的出口商,但我可以看到我如何摆脱默认的出口商。
如果没有办法做到这一点,那么出口商被挤兑的订单有保障吗?换句话说,我的额外出口商会保证在默认出口商之后运行吗?
如何摆脱默认的导出程序
如果你不想要默认设置,你需要创建一个空的配置,并以明确的方式添加你需要的一切。将结果打印到控制台的最小配置:
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
我创建了一个PR,将在下一个版本中使其更容易:https://github.com/dotnet/BenchmarkDotNet/pull/1582
如果您发现当前解决方案过于复杂,请随时在BDN回购中创建问题,并建议新的API |解决方案。
出口商的订单是否得到保证?
它保证按依赖项要求排序:
https://github.com/dotnet/BenchmarkDotNet/blob/81c234d11cab1b3beb0e60cf0f5c4c92e60a41e6/src/BenchmarkDotNet/Configs/ImmutableConfigBuilder.cs#L117
一个例子是RPlot
导出器,它依赖于让CSV
导出器先完成它的工作:
https://github.com/dotnet/BenchmarkDotNet/blob/27887d4b612312c74c63c0c3220351f8db8e81e4/src/BenchmarkDotNet/Exporters/RPlotExporter.cs#L22-L26