lua 内存回收

内存回收器函数 Lua 提供了以下函数collectgarbage ([opt [, arg]])用来控制自动内存管理: 1, collectgarbage("collect"): 做一次完整的垃圾收集循环。通过参数 opt 它提供了一组不同的功能: 2, collectgarbage("count"): 以 K 字节数为单位返回 Lua 使用的总内存数。 这个值有小数部分,所以只需要乘上 1024 就能得到 Lua 使用的准确字节数(除非溢出)。 3, collectgarbage("restart"): 重启垃圾收集器的自动运行。 4, collectgarbage("setpause"): 将 arg 设为收集器的 间歇率 (参见 §2.5)。 返回 间歇率 的前一个值。 5, collectgarbage("setstepmul"): 返回 步进倍率 的前一个值。 6, collectgarbage("step"): 单步运行垃圾收集器。 步长"大小"由 arg 控制。 传入 0 时,收集器步进(不可分割的)一步。 传入非 0 值, 收集器收集相当于 Lua 分配这些多(K 字节)内存的工作。 如果收集器结束一个循环将返回 true 。 7, collectgarbage("stop"): 停止垃圾收集器的运行。 在调用重启前,收集器只会因显式的调用运行。 以下演示了一个简单的垃圾回收实例: mytable = {"apple", "orange", "banana"} print(collectgarbage("count")) mytable = nil print(collectgarbage("count")) print(collectgarbage("collect")) print(collectgarbage("count")) 执行以上程序,输出结果如下(注意内存使用的变化): 20.9560546875 20.9853515625 0 19.4111328125
相关文章
相关标签/搜索