Ejemplo n.º 1
0
        static void Sample1_CompileOnceExecuteMany()
        {
            string text = System.IO.File.ReadAllText("samples/sample1.txt");

            var engine = new Cet.Core.MicroScript.ScriptEngine();

            engine.CodeStream = Cet.Core.MicroScript.Compiler.Compile(text);

            const int N  = 100000;
            var       sw = Stopwatch.StartNew();

            double total = 0;

            for (int i = 0; i < N; i++)
            {
                var xdata = new MyDataAccess();
                xdata.Parameters.Add("a", 1.0 * i);
                xdata.Parameters.Add("b", 2.0 * i);

                RunResult engres = engine.Execute(xdata);
                total += (double)engres.Result;
            }

            sw.Stop();
            Console.WriteLine($"Sample1_CompileOnceExecuteMany: total={total}; ms={sw.ElapsedMilliseconds}; ms/cyc={sw.ElapsedMilliseconds * 1.0 / N}");
            Console.WriteLine();
        }
Ejemplo n.º 2
0
        static void Fibonacci()
        {
            string text = System.IO.File.ReadAllText("samples/fib.txt");

            var sw = Stopwatch.StartNew();

            var engine = new Cet.Core.MicroScript.ScriptEngine();

            engine.CodeStream = Cet.Core.MicroScript.Compiler.Compile(text);

            var xdata = new MyDataAccess();

            engine.Execute(xdata);

            sw.Stop();
            Console.WriteLine($"Fibonacci: ms={sw.ElapsedMilliseconds}");
            Console.WriteLine();
        }
Ejemplo n.º 3
0
        static void Sample3_CompileOnceExecuteMany()
        {
            string text = System.IO.File.ReadAllText("samples/sample3.txt");

            const int N  = 100000;
            var       sw = Stopwatch.StartNew();

            var engine = new Cet.Core.MicroScript.ScriptEngine();

            engine.CodeStream = Cet.Core.MicroScript.Compiler.Compile(text);

            var xdata = new MyDataAccess();

            xdata.Parameters.Add("N", 1.0 * N);

            var total = (double)engine.Execute(xdata).Result;

            sw.Stop();
            Console.WriteLine($"Sample3_CompileOnceExecuteMany: total={total}; ms={sw.ElapsedMilliseconds}; ms/cyc={sw.ElapsedMilliseconds * 1.0 / N}");
            Console.WriteLine();
        }