You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除或跳过BenchmarkDotNet中的DefaultJob?

解决BenchmarkDotNet中ManualConfig自动添加DefaultJob的问题

方法一:直接移除DefaultJob

用ManualConfig.CreateEmpty()创建空配置后,直接调用Remove方法剔除默认的DefaultJob,配置里就只会保留你自定义的Job,不会触发Release配置的检查。示例代码:

var config = ManualConfig.CreateEmpty()
    .AddJob(YourCustomJob) // 替换为你的自定义Job实例
    .Remove(DefaultJob.Instance);

方法二:实现IConfig接口完全自定义

如果上述方法仍有问题,可以直接实现IConfig接口,完全掌控配置内容,确保DefaultJob不会被加入。示例代码:

public class CustomBenchmarkConfig : IConfig
{
    // 仅返回你的自定义Job,完全排除DefaultJob
    public IEnumerable<Job> Jobs => new List<Job> { YourCustomJob };

    // 以下根据需求配置其他组件,不需要的返回空集合即可
    public IEnumerable<IColumnProvider> ColumnProviders => Enumerable.Empty<IColumnProvider>();
    public IEnumerable<ILogger> Loggers => Enumerable.Empty<ILogger>();
    public IEnumerable<IExporter> Exporters => Enumerable.Empty<IExporter>();
    public IEnumerable<IValidator> Validators => Enumerable.Empty<IValidator>();
    public IEnumerable<IDiagnoser> Diagnosers => Enumerable.Empty<IDiagnoser>();
    public IEnumerable<IJobMutator> JobMutators => Enumerable.Empty<IJobMutator>();
    
    public bool HasBenchmarksValidator => false;
    public ConfigUnionRule UnionRule => ConfigUnionRule.AlwaysUseLocal;
}

额外注意事项

  • 自定义Job时,要把Configuration属性设置为你的Benchmarks编译配置,避免环境不匹配的问题
  • 如果Visual Studio智能提示仍异常,建议删除项目的bin和obj文件夹,清理缓存后重新加载项目

内容的提问来源于stack exchange,提问作者Kevin-Duel Trimble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:25:59