Example #1
0
    public void CompileCode()
    {
        RoslynEvaluator.LoadCompilers();

        Assembly script = CSScript.RoslynEvaluator.CompileCode(classCode);

        Assert.NotNull(script);
    }
Example #2
0
        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();
        }
Example #3
0
        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();
        }