public void InvokeStructParaCB() { ParaStruct paraStruct = new ParaStruct(); for (int i = 0; i < 1000000; i++) { StructParaEvent(paraStruct); } }
public void funcStructParam(ParaStruct x) { }
public static void sFuncStructParam(ParaStruct x) { }
private void StartCSCallLua() { int LOOP_TIMES = 1000000; Debug.Log("C# call lua :"); sw.WriteLine("C# call lua :"); FuncBasePara funcBaseParm = luaenv.Global.Get <FuncBasePara>("FuncBasePara"); PerformentTest("C# call lua : base parameter function :", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { funcBaseParm(i); } }); FuncClassPara funcClassPara = luaenv.Global.Get <FuncClassPara> ("FuncClassPara"); ParaClass paraClass = new ParaClass(); PerformentTest("C# call lua : class parameter function :", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { funcClassPara(paraClass); } }); FuncStructPara funcStructPara = luaenv.Global.Get <FuncStructPara> ("FuncStructPara"); ParaStruct paraStruct = new ParaStruct(); PerformentTest("C# call lua : struct parameter function :", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { funcStructPara(paraStruct); } }); FuncTwoBasePara funcTwoBasePara = luaenv.Global.Get <FuncTwoBasePara> ("FuncTwoBasePara"); PerformentTest("C# call lua : two base parameter function :", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { funcTwoBasePara(i, i); } }); sw.WriteLine("C# access lua table : "); ITableAccess iTAccess = luaenv.Global.Get <ITableAccess> ("luaTable"); PerformentTest("C# access lua table : access member, get : ", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { int x = iTAccess.id; } }); PerformentTest("C# access lua table : access member, set : ", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { iTAccess.id = 0; } }); PerformentTest("C# access lua table : access member function : ", LOOP_TIMES, loop_times => { for (int i = 0; i < loop_times; i++) { iTAccess.func(); } }); }