1、步骤
(1)收集所有容器对象 ( list , dict , tuple , customClass, … ) ,通过一个双向链表进行引用;
(2)针对每一个容器对象,通过一个变量 gc_refs 来记录当前对应的引用计数;
(3)对于每个容器对象,找到它所引用的容器对象,并将这个容器对象的引用计数 -1;
(4)经过步骤 3 后,如果一个容器对象的引用计数为 0,就代表这个对象可以被回收了,肯定是 “循环引用” 才导致它活到现在的。
2、垃圾回收的周期顺序
0 代 “垃圾回收” 一定次数后,触发 0~1 代回收;
1 代 “垃圾回收” 一定次数后,触发 0~2 代回收。
以上就是python垃圾回收的机制过程,希望能对大家有所帮助。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试