1. 程式人生 > >【Lua】提升lua效能的技巧

【Lua】提升lua效能的技巧

  • 儘量使用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