MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System;5using System.Collections.Generic;6using System.Collections.Immutable;7using System.IO;8using BenchmarkDotNet.Running;9using BenchmarkDotNet.Extensions;10 11namespace MicroBenchmarks12{13 public sealed class Program14 {15 public static int Main(string[] args)16 {17 var argsList = new List<string>(args);18 int? partitionCount;19 int? partitionIndex;20 List<string> exclusionFilterValue;21 List<string> categoryExclusionFilterValue;22 bool getDiffableDisasm;23 24 // Parse and remove any additional parameters that we need that aren't part of BDN (BenchmarkDotnet)25 try26 {27 CommandLineOptions.ParseAndRemoveIntParameter(argsList, "--partition-count", out partitionCount);28 CommandLineOptions.ParseAndRemoveIntParameter(argsList, "--partition-index", out partitionIndex);29 CommandLineOptions.ParseAndRemoveStringsParameter(argsList, "--exclusion-filter", out exclusionFilterValue);30 CommandLineOptions.ParseAndRemoveStringsParameter(argsList, "--category-exclusion-filter", out categoryExclusionFilterValue);31 CommandLineOptions.ParseAndRemoveBooleanParameter(argsList, "--disasm-diff", out getDiffableDisasm);32 33 CommandLineOptions.ValidatePartitionParameters(partitionCount, partitionIndex);34 }35 catch (ArgumentException e)36 {37 Console.WriteLine("ArgumentException: {0}", e.Message);38 return 1;39 }40 41 return BenchmarkSwitcher42 .FromAssembly(typeof(Program).Assembly)43 .Run(44 argsList.ToArray(),45 RecommendedConfig.Create(46 artifactsPath: new DirectoryInfo(Path.Combine(Path.GetDirectoryName(typeof(Program).Assembly.Location), "BenchmarkDotNet.Artifacts")),47 mandatoryCategories: ImmutableHashSet.Create(Categories.Components, Categories.Engine),48 partitionCount: partitionCount,49 partitionIndex: partitionIndex,50 exclusionFilterValue: exclusionFilterValue,51 categoryExclusionFilterValue: categoryExclusionFilterValue,52 getDiffableDisasm: getDiffableDisasm))53 .ToExitCode();54 }55 }56}57 