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(); }
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(); }
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(); }