垃圾回收面面观
垃圾回收面面观 2015-06-18 下一篇准备写Go1.5的垃圾回收的,所以这一篇先做一些垃圾回收相关的基础知识的铺垫。 基本垃圾回收算法 实际上大多数的垃圾回收算法,都是下面三种基本垃圾回收算法之上的变种。 引用计数(reference counting) 基本思路是为每个对象加一个计数器,记录指向这个对象的引用数量。每次有一个新的引用指向这个对象,计数器加一;反之每次有一个指向这个对象引用被置空或者指向其他对象,计数器减一。当计数器变为 0 的时候,自动删除这个对象。 引用计数的优点是: 相对简单,不需要太多运行时的支持,可以在原生不支持GC的语言里实现。 对象会在成为垃圾的瞬间被释放,不会给正常程序的执行带来额外中断。 它的问题是循环引用,对象A包含一个引用指向对象B,同时对象B包含...阅读全文