1、创建一个闭合函数要比创建一个table更廉价,访问非局部的变量也比table字段更快。
2、访问局部变量要比全局变量更快,尽可能的使用局部变量,可以避免无用的名称引入全局环境。
3、do-end语句块能提高lua运行效率,lua运行一行代码就会开启新的程序块,而do-end只有在遇到end时才会算做一个程序块。
4、正确的尾调用不耗费任何栈空间,特别是递归时不会造成栈溢出。
5、循环中使用无状态的迭代器,可以避免每次创建新的闭合函数而产生开销。
6、多重赋值解决声明多个变量时的运行效率。
7、多次运行代码块时,loadfile编译一次可多次运行,dofile每次运行都将会再次编译,这时loadfile的开销将小很多。
8、函数定义是一种赋值操作,只有在运行时才完成的操作。加载外部代码块只是编译了它,但还没有定义它。
9、合理使用弱引用table,可增强函数运行速度,整理内存及无效指针。