LUA 垃圾回收

Lua垃圾回收只有一个函数collectgarbage,第一个参数是字符串,代表操作类型,第二个参数只有某些操作有,是该操作所需要的参数。


操作类型:

stop停止垃圾收集。

restart重启垃圾收集。

collect执行一个完整的垃圾收集循环。

count返回当前使用的内存,单位为千字节。

step单步执行垃圾收集,第二个参数代表多少步。如果步长可以完成一次垃圾收集,则返回true。

setstepmul第二参数/100代表单步的速度,默认值为200,代表是内存分配速度的两倍。

setpause第二个参数/100代表在开始一个新的收集周期之前要等待多久。当这个值小于等于100的时候,就代表执行完一个周期之后不会等待,直接进入下一个周期。当这个值为200的时候,就代表当内存达到上一个周期结束时的两倍的时候,再进入下一个周期。

当设置了setstepmul和setpause,Lua便会开启自动垃圾回收。

例如cocos2d-x中的设置:


collectgarbage("setpause",100)
collectgarbage("setstepmul",5000)
setpause为100代表,垃圾收集不会停止,setsetpmul为5000代表是内存分配速度的50倍。


我们只需要将不适用的变量设置为nil,它之前所引用的类型就会在一定时间内被自动回收。

当设置了setstepmul和setpause,Lua便会开启自动垃圾回收。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值