PY垃圾回收
import sys a = [2] print(sys.getrefcount(a)) # 查看引用计数

// object.h
struct _object {
Py_ssize_t ob_refcnt; # 引用计数值
struct PyTypeObject *ob_type;
} PyObject;
a = [2] b = [3] a.append(b) b.append(a) # 循环引用
del a # 减少引用计数
a=None
标记清除
从跟对象不断访问可达点,然后不可达点标灰,然后清除
分代回收
import gc
print(gc.get_threshold()) # 每一代清除的阈值 变量个数
'''
0 一开始创建的变量 双向链表的存储形式 ; 每隔一段时间执行一次;将没有被清除的放入下一代
1 双向链表的存储形式 ; 每隔一段时间执行一次;将没有被清除的放入下一代
2 双向链表的存储形式 ; 每隔一段时间执行一次;将没有被清除的(常驻变量)
'''

浙公网安备 33010602011771号