如何获取BenchmarkDotNet默认运行参数及运行次数详情?
BenchmarkDotNet 参数查看与N值解析
一、查看自动设置的LaunchCount、IterationCount、InvocationCount
若未手动指定参数,可通过以下三种方式获取自动配置的数值:
- 控制台详细日志:运行基准测试时添加命令行参数
--verbosity detailed,或在代码中配置Config.WithOptions(ConfigOptions.DetailedSummary),控制台会打印每个基准测试的完整配置,包含LaunchCount、IterationCount、InvocationCount的具体值。 - 完整CSV报告:使用
CsvExporter.Full导出报告,CSV文件中会直接列出LaunchCount、IterationCount、InvocationCount列,比JSON导出更直观。 - 代码内访问配置:在基准类的
Setup方法或配置初始化逻辑中,直接读取配置对象的对应属性。示例代码:var config = DefaultConfig.Instance; var launchCount = config.GetValue(DefaultLaunchCountPolicy.Instance); var iterationCount = config.GetValue(DefaultIterationCountPolicy.Instance); var invocationCount = config.GetValue(DefaultInvocationCountPolicy.Instance); Console.WriteLine($"LaunchCount: {launchCount}, IterationCount: {iterationCount}, InvocationCount: {invocationCount}");
二、JSON报告中"N":39的含义
这个N代表最终用于性能统计的有效调用次数(不含预热迭代)。
自动模式下,BenchmarkDotNet会根据统计稳定性动态调整迭代次数,还会过滤预热阶段、波动较大的无效样本,因此N不是简单的LaunchCount × IterationCount × InvocationCount乘积,而是经过筛选后、符合统计要求的有效样本总数,用于计算均值、标准差等核心性能指标。
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

