コード例 #1
0
 internal MonoDisassembler(DisassemblyDiagnoserConfig config)
 {
     printIL              = config.PrintIL;
     printAsm             = config.PrintAsm;
     printSource          = config.PrintSource;
     printPrologAndEpilog = config.PrintPrologAndEpilog;
     recursiveDepth       = config.RecursiveDepth;
 }
コード例 #2
0
        private DisassemblyDiagnoser(WindowsDisassembler windowsDisassembler, MonoDisassembler monoDisassembler, DisassemblyDiagnoserConfig config)
        {
            Config = config;
            this.windowsDisassembler = windowsDisassembler;
            this.monoDisassembler    = monoDisassembler;

            results   = new Dictionary <BenchmarkCase, DisassemblyResult>();
            Exporters = GetExporters(results, config);
        }
コード例 #3
0
        public DisassemblyDiagnoser(DisassemblyDiagnoserConfig config)
        {
            Config = config;
            windowsDisassembler = new WindowsDisassembler(config);
            linuxDisassembler   = new LinuxDisassembler(config);
            monoDisassembler    = new MonoDisassembler(config);

            results   = new Dictionary <BenchmarkCase, DisassemblyResult>();
            Exporters = GetExporters(results, config);
        }
コード例 #4
0
        public DisassemblyDiagnoser(DisassemblyDiagnoserConfig config)
        {
            Config = config;
            windowsDifferentArchitectureDisassembler = new WindowsDisassembler(config);
            sameArchitectureDisassembler             = new SameArchitectureDisassembler(config);
            monoDisassembler = new MonoDisassembler(config);

            results   = new Dictionary <BenchmarkCase, DisassemblyResult>();
            Exporters = GetExporters(results, config);
        }
コード例 #5
0
        private DisassemblyDiagnoser(WindowsDisassembler windowsDisassembler, MonoDisassembler monoDisassembler, DisassemblyDiagnoserConfig config)
        {
            Config = config;
            this.windowsDisassembler = windowsDisassembler;
            this.monoDisassembler    = monoDisassembler;

            results   = new Dictionary <BenchmarkCase, DisassemblyResult>();
            Exporters = new IExporter[]
            {
                new CombinedDisassemblyExporter(results),
                new RawDisassemblyExporter(results),
                new PrettyHtmlDisassemblyExporter(results),
                new PrettyGithubMarkdownDisassemblyExporter(results)
            };
        }
コード例 #6
0
 public IConfigurableDiagnoser <DisassemblyDiagnoserConfig> Configure(DisassemblyDiagnoserConfig config)
 => Create(config);
コード例 #7
0
 public static IConfigurableDiagnoser <DisassemblyDiagnoserConfig> Create(DisassemblyDiagnoserConfig config)
 => new DisassemblyDiagnoser(new WindowsDisassembler(config), new MonoDisassembler(config), config);
コード例 #8
0
 private static IEnumerable <IExporter> GetExporters(Dictionary <BenchmarkCase, DisassemblyResult> results, DisassemblyDiagnoserConfig config)
 {
     if (config.ExportGithubMarkdown)
     {
         yield return(new GithubMarkdownDisassemblyExporter(results, config));
     }
     if (config.ExportHtml)
     {
         yield return(new HtmlDisassemblyExporter(results, config));
     }
     if (config.ExportCombinedDisassemblyReport)
     {
         yield return(new CombinedDisassemblyExporter(results, config));
     }
     if (config.ExportDiff)
     {
         yield return(new GithubMarkdownDiffDisassemblyExporter(results, config));
     }
 }
コード例 #9
0
        private static IEnumerable <IExporter> GetExporters(Dictionary <BenchmarkCase, DisassemblyResult> results, DisassemblyDiagnoserConfig config)
        {
            yield return(new CombinedDisassemblyExporter(results));

            yield return(new RawDisassemblyExporter(results));

            yield return(new PrettyHtmlDisassemblyExporter(results));

            yield return(new PrettyGithubMarkdownDisassemblyExporter(results));

            if (config.PrintDiff)
            {
                yield return(new PrettyGithubMarkdownDiffDisassemblyExporter(results));
            }
        }