public (Action tritonAction, Action nluaAction) Benchmark_Results(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton.DoString("return 1, 2, 3, 4, 5"); void NLua() => nlua.DoString("return 1, 2, 3, 4, 5"); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteNumber(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton["test"] = 0.0; void NLua() => nlua["test"] = 0.0; return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteString(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton["test"] = "test"; void NLua() => nlua["test"] = "test"; return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_NoResults(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton.DoString("test = 0"); void NLua() => nlua.DoString("test = 0"); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteObject(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton["test"] = new object(); void NLua() => nlua["test"] = new object(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteBoolean(Triton.Lua triton, NLua.Lua nlua) { void Triton() => triton["test"] = false; void NLua() => nlua["test"] = false; return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteReference(Triton.Lua triton, NLua.Lua nlua) { var tritonFunction = triton.CreateFunction(""); var nluaFunction = nlua.LoadString("", "test"); void Triton() => triton["test"] = tritonFunction; void NLua() => nlua["test"] = nluaFunction; return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteObject(Triton.Lua triton, NLua.Lua nlua) { var tritonTable = triton.CreateTable(); var nluaTable = (NLua.LuaTable)nlua.DoString("return {}")[0]; void Triton() => tritonTable["test"] = new object(); void NLua() => nluaTable["test"] = new object(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteInstance(Triton.Lua triton, NLua.Lua nlua) { triton["test"] = new TestClass(); nlua["test"] = new TestClass(); var tritonFunction = triton.CreateFunction("test.x = 0"); var nluaFunction = nlua.LoadString("test.x = 0", "test"); void Triton() => tritonFunction.Call(); void NLua() => nluaFunction.Call(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteStatic(Triton.Lua triton, NLua.Lua nlua) { triton.ImportType(typeof(TestClass)); nlua.DoString("TestClass = luanet.import_type('Triton.Benchmarks.Binding.FieldBenchmark+TestClass')"); var tritonFunction = triton.CreateFunction("TestClass.X = 0"); var nluaFunction = nlua.LoadString("TestClass.X = 0", "test"); void Triton() => tritonFunction.Call(); void NLua() => nluaFunction.Call(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_Write(Triton.Lua triton, NLua.Lua nlua) { triton["test"] = new int[10]; nlua["test"] = new int[10]; var tritonFunction = triton.CreateFunction("test[0] = 10"); var nluaFunction = nlua.LoadString("test[0] = 10", "test"); void Triton() => tritonFunction.Call(); void NLua() => nluaFunction.Call(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_WriteReference(Triton.Lua triton, NLua.Lua nlua) { var tritonTable = triton.CreateTable(); var nluaTable = (NLua.LuaTable)nlua.DoString("return {}")[0]; var tritonFunction = triton.CreateFunction(""); var nluaFunction = nlua.LoadString("", "test"); void Triton() => tritonTable["test"] = tritonFunction; void NLua() => nluaTable["test"] = nluaFunction; return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_UnaryOperator(Triton.Lua triton, NLua.Lua nlua) { triton["c"] = new Complex(1, 1); nlua["c"] = new Complex(1, 1); var tritonFunction = triton.CreateFunction("x = -c"); var nluaFunction = nlua.LoadString("x = -c", "test"); void Triton() => tritonFunction.Call(); void NLua() => nluaFunction.Call(); return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadNil(Triton.Lua triton, NLua.Lua nlua) { void Triton() { var t = triton["test"]; } void NLua() { var t = nlua["test"]; } return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadNil(Triton.Lua triton, NLua.Lua nlua) { var tritonTable = triton.CreateTable(); var nluaTable = (NLua.LuaTable)nlua.DoString("return {}")[0]; void Triton() { var t = triton["test"]; } void NLua() { var t = nluaTable["test"]; } return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadReference(Triton.Lua triton, NLua.Lua nlua) { triton.DoString("test = function() end"); nlua.DoString("test = function() end"); void Triton() { var t = triton["test"]; } void NLua() { var t = nlua["test"]; } return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadBoolean(Triton.Lua triton, NLua.Lua nlua) { triton["test"] = false; nlua["test"] = false; void Triton() { var t = triton["test"]; } void NLua() { var t = nlua["test"]; } return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadObject(Triton.Lua triton, NLua.Lua nlua) { triton["test"] = new object(); nlua["test"] = new object(); void Triton() { var t = triton["test"]; } void NLua() { var t = nlua["test"]; } return(Triton, NLua); }
public (Action tritonAction, Action nluaAction) Benchmark_ReadReference(Triton.Lua triton, NLua.Lua nlua) { var tritonTable = triton.CreateTable(); var nluaTable = (NLua.LuaTable)nlua.DoString("return {}")[0]; tritonTable["test"] = triton.CreateFunction(""); nluaTable["test"] = nlua.LoadString("", "test"); void Triton() { var t = tritonTable["test"]; } void NLua() { var t = nluaTable["test"]; } return(Triton, NLua); }
static void Main(string[] args) { var benchmarkTypes = typeof(Program).Assembly.GetExportedTypes().Where(t => !t.IsAbstract); foreach (var benchmarkType in benchmarkTypes) { object benchmark; try { benchmark = Activator.CreateInstance(benchmarkType); } catch (MissingMethodException) { continue; } var benchmarkMethods = benchmarkType.GetMethods().Where(m => m.Name.StartsWith("Benchmark_")).ToList(); if (benchmarkMethods.Count == 0) { continue; } Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{benchmarkType.Name}:"); foreach (var benchmarkMethod in benchmarkMethods) { using (var triton = new Triton.Lua()) using (var nlua = new NLua.Lua()) { nlua.DoString("luanet.load_assembly('Triton.Benchmarks')"); var(tritonAction, nluaAction) = ((Action tritonAction, Action nluaAction))benchmarkMethod.Invoke(benchmark, new object[] { triton, nlua }); Test(benchmarkMethod.Name, tritonAction, nluaAction); } } } Console.ReadKey(true); }
public (Action tritonAction, Action nluaAction) Benchmark_CallInstance_Results(Triton.Lua triton, NLua.Lua nlua) { triton["test"] = new TestClass(); nlua["test"] = new TestClass(); var tritonFunction = triton.CreateFunction("x, y = test:y2()"); var nluaFunction = nlua.LoadString("x, y = test:y2()", "test"); void Triton() => tritonFunction.Call(); void NLua() => nluaFunction.Call(); return(Triton, NLua); }