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

2021-06-07 22:29:14 字數 1421 閱讀 6225

#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 long sum = (long long)lua_tointeger(l, -1); //《將棧頂轉換成longlong型資料

lua_pop(l, 1); //《彈出第乙個元素

return sum;

}int main()

clock_t start, end;

start = clock();

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

sum += 1+2;

end = clock();

printf("in c++, runing time is %d ms %lld\n",(int)(end - start), sum);

start = clock();

sum = use_lua_fun(l, "loopadd", 1, 2);

end = clock();

printf("lua loopadd function, runing time is %d ms %lld\n",(int)(end - start), sum);

sum = 0;

start = clock();

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

sum += use_lua_fun(l, "add", 1, 2);

end = clock();

printf("c++ loop lua's add function, runing time is %d ms %lld\n",(int)(end - start), sum);

lua_close(l); //《關閉lua物件指標

return 0;

}test.lua 指令碼內容如下

function add(x,y)

return x+y;

endfunction loopadd(x,y)

local sum = 0

for i = 1,4000000

dosum = sum + x + y

endreturn sum

end輸出結果

in c++, runing time is 16 ms 12000000

lua loopadd function, runing time is 219 ms 12000000

c++ loop lua's add function, runing time is 1937 ms 12000000

測試執行分層

測試執行分層 v模型體現了測試設計分層和測試執行分層的概念,本文以作者自身的理解談談測試執行分層,不過從實際專案運作情況來看,真正做到測試執行分層的並不多,這裡原因有很多種,暫且不論。1.ut 單元測試的物件是lld中所劃分定義的程式單元或模組,它也是單元測試用例設計中可測試的最大單元。該測試物件可...

測試執行 setup tearDown

1 測試執行 這類方法用於測試的執行過程,比如在測試之前連線資料庫,測試之後用於清除增加的字段,跳過某個測試用例等。利用這些方法,可以降低測試用例 的複雜度,減少 耦合度,結構也更加清晰。setup 與teardown 顧名思義。setip和teardown分別是安裝和解除安裝的意思。setup 方...

談談測試執行分層

v模型體現了測試設計分層和測試執行分 層的概念,本文以作者自身的理解談談測試執行分層,不過從實際專案運作情況來看,真正做到測試執行分層的並不多,這裡原因有很多種,暫且不論。1.ut 單元測試的物件是lld中所劃分定義的程式單元或模組,它也是 單元測試用例設計中可測試的最大單元。該測試物件可能由乙個或...