C呼叫lua指令碼的效率測試

2021-09-30 03:51:00 字數 1636 閱讀 4186

c呼叫lua指令碼的效率測試

以下**以c語言為基準,測試了c呼叫lua迴圈和迴圈呼叫lua的效率。結論是不要頻繁地穿越c/lua邊界.

#include

extern "c"

/* lua直譯器指標 */

const char lua_script =

"function loop_add(a, b)            "

"   local sum = 0                   "

"   for i = 1, 10000000 do          "

"       sum = sum + a + b           "

"   end                             "

"   return sum                      "

"end                                "

"                                   "

"function add(a, b)                 "

"   return a + b                    "

"end                                "

;// lua 指令碼裡面的函式由c呼叫

int use_lua_add(lua_state *l, const char *func_name, int x, int y)

int main()

sum = 0;

tstart = clock();

for (i = 0; i < 10000000; i++)

tstop = clock();

printf("c++: %dms./nthe sum is %u./n",

(tstop - tstart) * 1000 / clocks_per_sec, sum);

sum = 0;

tstart = clock();

sum = use_lua_add(l, "loop_add", 1, 1);

tstop = clock();

printf("lua loop_add: %dms./nthe sum is %u./n",

(tstop - tstart) * 1000 / clocks_per_sec, sum);

sum = 0;

tstart = clock();

for (i = 0; i < 10000000; i++)

tstop = clock();

printf("loop lua add: %dms./nthe sum is %u./n",

(tstop - tstart) * 1000 / clocks_per_sec, sum);

lua_close(l);

return 0;}

執行結果:

c++: 31ms.

the sum is 20000000.

lua loop_add: 437ms.

the sum is 20000000.

loop lua add: 2360ms.

the sum is 20000000.

C呼叫lua指令碼的效率測試

include extern c lua直譯器指標 const char lua script function loop add a,b local sum 0 for i 1,10000000 do sum sum a b end return sum end function add a,b ...

C呼叫lua指令碼的效率測試

c呼叫lua指令碼的效率測試 以下 以c語言為基準,測試了c呼叫lua迴圈和迴圈呼叫lua的效率。結論是不要頻繁地穿越c lua邊界.include extern c lua直譯器指標 const char lua script function loop add a,b local sum 0 f...

c 呼叫lua指令碼測試執行效率

include extern c pragma comment lib,lua51.lib 載入lua鏈結庫 lua state l 建立全域性lua物件指標 long long use lua fun lua state l,const char funname,int a,int b long ...