Lua程序设计(六十四)

控制垃圾收集的步长

通过函数collectgarbage可以对垃圾收集器进行一些额外的控制,该函数实际上是几个函数的集合体:第一个参数是可选的字符串,用来说明进行何种操作;有些选项使用一个整形作为第二个参数,称为data

第一个参数的选项有以下七个。

stop": 停止垃圾收集器,使用选项"restart"再次调用collectgarbage

restart”: 重启垃圾收集器。

collect": 执行一次完整的垃圾收集,回收和析构所有不可达的对象。

step”: 执行某些垃圾工作,第二个参数data指明工作量, 即分配了data个字节后垃圾收集器应该做什么。

count”: 以KB为单位返回当前已用内存数,该结果是一个浮点数,乘以1024得到的就是精确的字节数。

setpause": 设置收集器的pause参数。参数data以百分比为单位给出要设定的新值:当data为100是,参数设为1.

setsetmul”: 设置收集器的stepmul参数(步进速率, step multiplier)。参数data给出新值,也是以百分比为单位。

两个参数pausestepmul控制着垃圾收集器的角色。任何垃圾收集器都是使用CPU时间换内存空间。pausestepmul的默认值试图在不消耗内存和消耗巨大内存这两个极端之间找到平衡点。

参数pause用于控制垃圾收集器在一次收集完成后等待多久再开始新的一次收集。

参数stepmul控制对于每分配1KB内存,垃圾收集器应该进行多少工作。

函数collectgarbage的另外一些参数用来在垃圾收集器运行时控制它的行为。 例如,如果我们不想让垃圾收集器在某些阶段运行,那么可以通过调用函数**collectgarbage(“stop")停止垃圾收集器,然后调用collectgarbage(“restart”)**来重启垃圾收集器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值