python垃圾回收的机制过程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、步骤

(1)收集所有容器对象 ( list , dict , tuple , customClass, ... ) ,通过一个双向链表进行引用;

(2)针对每一个容器对象,通过一个变量 gc_refs 来记录当前对应的引用计数;

(3)对于每个容器对象,找到它所引用的容器对象,并将这个容器对象的引用计数 -1;

(4)经过步骤 3 后,如果一个容器对象的引用计数为 0,就代表这个对象可以被回收了,肯定是 "循环引用" 才导致它活到现在的。

2、垃圾回收的周期顺序

0 代 "垃圾回收" 一定次数后,触发 0~1 代回收;

1 代 "垃圾回收" 一定次数后,触发 0~2 代回收。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。