Ejemplo n.º 1
0
    static bool Run()
    {
        bool success = false;

        try
        {
            // NOTE: this is mostly working around bugs in BenchmarkDotNet configuration
            var logger     = new Logger();
            var baseConfig = new DebugInProcessConfig();

            var config = new ManualConfig();

            foreach (var e in baseConfig.GetExporters())
            {
                config.AddExporter(e);
            }
            foreach (var d in baseConfig.GetDiagnosers())
            {
                config.AddDiagnoser(d);
            }
            foreach (var a in baseConfig.GetAnalysers())
            {
                config.AddAnalyser(a);
            }
            foreach (var v in baseConfig.GetValidators())
            {
                config.AddValidator(v);
            }
            foreach (var p in baseConfig.GetColumnProviders())
            {
                config.AddColumnProvider(p);
            }
            config.AddJob(JobMode <Job> .Default.WithToolchain(new InProcessEmitToolchain(TimeSpan.FromMinutes(10), logOutput: true)));
            config.UnionRule = ConfigUnionRule.AlwaysUseGlobal;             // Overriding the default
            config.AddLogger(logger);

            // ImageBenchmark class is hardcoded here for now
            BenchmarkRunner.Run <ImageBenchmark>(config.WithOptions(ConfigOptions.DisableLogFile));
            BenchmarkRunner.Run <ViewHandlerBenchmark>(config.WithOptions(ConfigOptions.DisableLogFile));

            success = true;
        }
        catch (Exception ex)
        {
            Log.Error(Tag, $"Error: {ex}");
        }
        return(success);
    }