private void RunBenchmarks(string[] args) { for (int i = 0; i < Types.Length; i++) { var type = Types[i]; if (args.Any(arg => type.Name.ToLower().StartsWith(arg.ToLower())) || args.Contains("#" + i) || args.Contains("" + i) || args.Contains("*")) { logger.WriteLineHeader("Target competition: " + type.Name); List<BenchmarkReport> reports; using (var logStreamWriter = new StreamWriter(type.Name + ".log")) { var loggers = new IBenchmarkLogger[] { new BenchmarkConsoleLogger(), new BenchmarkStreamLogger(logStreamWriter) }; var runner = new BenchmarkRunner(loggers); reports = runner.Run(type).ToList(); } MarkdownReportExporter.Default.SaveToFile(reports, type.Name + "-report.md"); CsvReportExporter.Default.SaveToFile(reports, type.Name + "-report.csv"); logger.NewLine(); } } if (args.Length > 0 && (args[0].StartsWith("http://") || args[0].StartsWith("https://"))) { var url = args[0]; Uri uri = new Uri(url); var name = uri.IsFile ? Path.GetFileName(uri.LocalPath) : "URL"; using (var logStreamWriter = new StreamWriter(name + ".log")) { var loggers = new IBenchmarkLogger[] { new BenchmarkConsoleLogger(), new BenchmarkStreamLogger(logStreamWriter) }; var runner = new BenchmarkRunner(loggers); runner.RunUrl(url); } } }
static void Main(string[] args) { var runner = new BenchmarkRunner(); runner.Run<BenchGenericDeserialize>(); }