private static async Task <ISet <MethodDescriptor> > RunAnalysisFromSourceAsync(int machines, string source) { var analyzer = SolutionAnalyzer.CreateFromSource(GrainClient.Instance, source); var analysisClient = new AnalysisClient(analyzer, machines); var callgraph = await analysisClient.Analyze(); var reachableMethods = callgraph.GetReachableMethods(); return(await Task.FromResult(reachableMethods)); }
public static void AnalyzeExample(string source, RunChecks checker, AnalysisStrategyKind strategy = AnalysisStrategyKind.NONE) { Environment.SetEnvironmentVariable("MyIPAddr", "127.0.0.1"); //var solution = ReachingTypeAnalysis.Utils.CreateSolution(source); //var solAnalyzer = new SolutionAnalyzer(solution); var solAnalyzer = SolutionAnalyzer.CreateFromSource(GrainClient, source, AnalysisRootKind.MainMethods); var callgraph = solAnalyzer.Analyze(strategy); if (strategy == AnalysisStrategyKind.ONDEMAND_ORLEANS) { var myStatsGrain = StatsHelper.GetStatGrain(GrainClient); myStatsGrain.ResetStats().Wait(); } checker(solAnalyzer, callgraph); }