lua:认识

Lua实现了一个安全的运行环境、一套自动内存管理机制、优秀的字符串处理能力和动态大小数据的处理功能。

 

我们都知道,只要应用程序加入lua解析器的功能,就能解析lua脚本。那lua脚本是怎样执行的?

我们通常用dofile去打开编译一个lua脚本。当应用程序调用dofile后,在执行完脚本后,才能后到主程序中,这lua脚本相当于一个函数。要等函数执行完才能回到主程序中。

在lua脚本中,一般有变量,函数,这些东西都保存在一个常规的table中,这个table称为“环境”。

 

loadfile、dofile、require


loadfile——只编译,不运行
dofile——执行
require——我只执行一次

用require函数只能加载一次,因为它的特性是:

1、require函数会搜索目录加载文件

2、require会判断是否文件已经加载避免重复加载同一文件。

但当有一些特殊的需求需要反复加载某个lua文件,那如何实现反复加载一个lua文件?

答案是:二次加载前加这一句

package.loaded[luafile] = nil

 

lua table


 关联数组是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或其它类型的值(除了nil)来索引它。

 

调试库


 调试库由两类函数组成:自省函数和钩子。自省函数允许检查一个正在运行中程序的各个方面,例如它的活动函数栈、当前执行的行、局部变量的名称和值。钩子则允许跟踪一个程序的执行。

 

lua使用优化建议


 

使用局部变量local

这是最基础也是最有用的策略,虽然使用全局变量并不能完全避免,但还是应该尽量避免,取而代之使用局部变量即local。这里的局部变量也包括函数function,因为在Lua里函数也是一个变量。局部变量的存取会更快,而且在生命周期之外就会释放掉。

 

尾调用

参考

http://wuzhiwei.net/lua_performance/

转载于:https://www.cnblogs.com/losophy/p/9209049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值