Lua 性能相关笔记

1、创建一个闭合函数要比创建一个table更廉价,访问非局部的变量也比table字段更快。

2、访问局部变量要比全局变量更快,尽可能的使用局部变量,可以避免无用的名称引入全局环境。

3、do-end语句块能提高lua运行效率,lua运行一行代码就会开启新的程序块,而do-end只有在遇到end时才会算做一个程序块。

4、正确的尾调用不耗费任何栈空间,特别是递归时不会造成栈溢出。

5、循环中使用无状态的迭代器,可以避免每次创建新的闭合函数而产生开销。

6、多重赋值解决声明多个变量时的运行效率。

7、多次运行代码块时,loadfile编译一次可多次运行,dofile每次运行都将会再次编译,这时loadfile的开销将小很多。

8、函数定义是一种赋值操作,只有在运行时才完成的操作。加载外部代码块只是编译了它,但还没有定义它。

9、合理使用弱引用table,可增强函数运行速度,整理内存及无效指针。