【Lua】提升lua性能的技巧

Lua Performance Tips

  • 尽量使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值