using BenchmarkDotNet.Configs; using BenchmarkDotNet.Running; namespace BenchMarkDotnetStudy.BenchmarkStudy { internal class Program { static void Main(string[] args) { Console.WriteLine("Benchmark 测试!"); if (args != null && args?.Length > 0) { Console.WriteLine($"有{args.Length}个命令行参数, 分别为[{string.Join(" | ", args)}]"); } else { Console.WriteLine("无命令行参数"); } //var summary = BenchmarkRunner.Run(); BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, new DebugInProcessConfig()); // MockArgsRun(); } public static void MockArgsRun() { //模拟命令行参数:参数和参数值分两个参数写 var mockArgs = new string[] { "--filter", "*CounterTest3.Thread2_Test" }; //显示模拟参数 Console.WriteLine($"有{mockArgs.Length}个模拟命令行参数, 分别为[{string.Join(" | ", mockArgs)}]"); //执行方式一 var summary = BenchmarkRunner.Run(null, mockArgs); //执行方式二:推荐 var summaries = BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(mockArgs, new DebugInProcessConfig()); } } }