【Lua】提升lua效能的技巧
阿新 • • 發佈:2019-01-23
- 儘量使用local,區域性變數的訪問會比全域性變數快很多(外部區域性變數也比全域性變數快不
- 避免在程式中編譯程式碼(將字串編譯為程式碼,如
loadstring(string.format("return %d", i)))
,可用閉包函式代替,如
function fk (k)
return function () return k end
end
- lua的table每次哈析分配空間為2的次方,儘量初始化的時候就告訴編譯器table中元素的個數(直接用true賦值即可,不識別表示式)
- lua中相同字串總是指向同一記憶體地址
- 字串連線很費時,對於大量連線操作,最好先用table儲存起來,再connect
- 用陣列替代新物件能節省不少記憶體空間
- 將迴圈內的函式定義到迴圈外,相應地,能重用的東西也放到迴圈外
- 利用高階函式,我們可以定義一個通用的快取化函式
function memoize (f)
local mem = {}
setmetatable(mem, {__mode = "kv"})
return function (x)
local r = mem[x]
if r == nil then
r = f(x)
mem[x] = r
end
return r
end
end