Lua 性能优化小结

Lua性能优化小结

    a. 给table添加元素时,tab[#tab + 1] = a比table.insert(tab, a)效率高,远比table.insert(tab, 1, a)效率高;

    b. 在循环内创建变量和循环外创建变量的效率取决于创建代价和跨域代价的对比,根据经验选择最合适的处理;

    c. 以局部变量代替多次使用的外部变量(xx.xx之类);

    d. 减少函数调用可以很大提高效率,但会降低代码的可读性,按需选择;

    e. 提前声明table大小可以很大提高效率,可以做到的情况尽量做到;

    f. string.format比..效率低很多,但可读性大大提高,按需选择;

    g. 在大字符串连接中,我们应避免..。应用table来模拟buffer,然后concat得到最终字符串

    h. 判断数组表是否为空时,一般情况用#tab>0即可,除非tab长度特别大,用next(tab)的效率才会更高。

    i. 3R原则:

             Reducing 避免创建新对象和节约内存。例如:如果你的程序中使用了太多的表,你可以考虑换一种数据结构来表示
             Reusing   如果无法避免创建新对象,我们需要考虑重用旧对象
             Recycling  Lua的垃圾回收器是一个增量运行的机制。即回收分成许多小步骤(增量的)来进行。频繁的垃圾回收可能会降低程序的运行效率。我们可以通过Lua的collectgarbage函数来控制垃圾回收器。

参考资料:

    http://wuzhiwei.net/lua_performance/(编写高性能的Lua代码)

    https://blog.csdn.net/u013119612/article/details/78758253(Lua:部分常用操作的效率对比及代码优化建议)

    https://cloud.tencent.com/developer/article/1005003(Lua性能剖析) 
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值