目录
一 Lua垃圾回收发展历程
1 Lua5.0及以前-全量GC
使用一个非常简单的标记扫描算法。从根集开始遍历对象,把能遍历到的对象标记为活对象,然后再遍历通过分配器分配出来的对象全集链表,把没有标记为活对象的其它对象都删除。
自动GC的默认发生时间:2倍于上次GC后的内存使用量。
缺点: stop the world,会卡住所有操作,直到gc完成。
2 Lua5.1-步进式GC(增量模式)
实现了一个步进式垃圾收集器(增量标记-扫描收集器),会在虚拟机的正常指令逻辑间交错分步运行,尽量把每步的执行时间减到合理的范围