python 垃圾回收机制
垃圾回收机制
1 引用计数机制: 每个对象有一个整型的引用计数属性。用于记录对象被引用的次数。
2 标记-清除: 标记阶段。将所有的对象看成图的节点,根据对象的引用关系构造图结构。从图的根节点遍历所有的对象,所有访问到的对象被打上标记,表明对象是“可达”的。
清除阶段。遍历所有对象,如果发现某个对象没有标记为“可达”,则就回收。(目的是解决循环引用的回收问题)
3 分代收集: 对象一共有3种世代:G0, G1, G2。刚创建时为G0,如果在一轮GC扫描中存活下来,则移至G1,处于G1的对象被扫描次数会减少。如果再次在扫描中活下来,则进入G2,处于G1的对象被扫描次数将会更少。