public void CompileCode() { RoslynEvaluator.LoadCompilers(); Assembly script = CSScript.RoslynEvaluator.CompileCode(classCode); Assert.NotNull(script); }
public static void Profile() { var sw = new Stopwatch(); var samples = new EvaluatorSamples(); var count = 20; var inxed = 0; bool preventCaching = false; Action run = () => { sw.Restart(); for (int i = 0; i < count; i++) { if (preventCaching) { samples.PerformanceTest(inxed++); } else { samples.PerformanceTest(); } } Console.WriteLine(CSScript.Evaluator.GetType().Name + ": " + sw.ElapsedMilliseconds); }; Action runAll = () => { Console.WriteLine(); Console.WriteLine("---------------------------------------------"); Console.WriteLine("Caching enabled: " + preventCaching); Console.WriteLine(); CSScript.EvaluatorConfig.Engine = EvaluatorEngine.Mono; run(); CSScript.EvaluatorConfig.Engine = EvaluatorEngine.CodeDom; run(); CSScript.EvaluatorConfig.Engine = EvaluatorEngine.Roslyn; run(); }; RoslynEvaluator.LoadCompilers(); //Roslyn is extremely heavy so exclude startup time from profiling Console.WriteLine("Testing performance"); preventCaching = true; runAll(); preventCaching = false; runAll(); }
public static void Main(string[] args) { CSScript.EvaluatorConfig.DebugBuild = true; CSScript.EvaluatorConfig.RefernceDomainAsemblies = true; //CSScript.EvaluatorConfig.Access = EvaluatorAccess.Singleton; RoslynEvaluator.LoadCompilers(); Test.ReferencingPackagesCode(); //return; Test.CompileCode(); Test.CompileMethod(); Test.CompileCSharp_7(); Test.CompileDelegate(); Test.CompileDelegate1(); Test.LoadCode(); Test.LoadCode2(); Test.CrossReferenceCode(); }