Lua 笔记16

垃圾收集

1. 自动内存管理。通过垃圾收集(garbage collection)自动地删除垃圾。避免无效指针(dangling pointer)、内存泄露(memory leak)等bug。

2. 在一个理想的环境中,垃圾收集器对程序员来说是不可见的,就像一个好的清洁工不会 和其他工人打交道一样。 不过,有时即使是最智能的垃圾收集器也会需要我们的辅助。

3. 我们做辅助工作有:可能需要将其停止,或者让其只在特定的时间运行;圾收集器只能收集它确定是垃圾的内容,而不能猜测我们把什么当作垃圾。

4. lua辅助垃圾收集器主要机制:弱引用表( weak table )、析构器( finalizer )和函数 collectgarbage 。

  弱引用表允许收集 Lua 语言中还可以被程序访问的对象。

  析构器允许收集不在垃圾收集器直接控制下的外部对象。

  函数 collectgarbage 则允许我们控制垃圾收集器的步长。