垃圾回收机制

发布时间 2023-04-24 20:29:23作者: ERROR404Notfound

垃圾回收机制

"""
有一些语言内存空间的申请和释放需要程序员写代码才能完成,但是python不需要,通过垃圾回收机制自动管理
"""
1.引用计数
	name = 'max'  #数据值'max'的引用计数为1
	name1 = name  #数据值'max'的引用计数为2
	数据值被变量名引用的次数称为引用计数。当引用计数为0时,该数据值就会被垃圾回收机制清理回收。当引用计数不为0,该数据值不会被垃圾回收机制回收。
    
2.标记清除
针对循环引用问题:
	l1 = [1, 2, 3] #引用计数为1
	l2 = [4, 5, 6] #引用计数为2
	l1.append(l2) #l1 = [1, 2, 3, l2列表]
	l2.append(l1) #l2 = [4, 5, 6, l1列表]
	del l1  #断开变量名l1与列表的绑定关系
	del l2  #断开变量名与l2列表的绑定关系
 	当内存占用达到顶峰是,程序就会自动停止,然后扫描程序中所有数据并给产生循环引用的数据打上标记,然后一次性清除
    
3.分代回收
	把数据值按照检索频率分为几类(定义为新生代、青春代、老年代),每隔一段时间对数据值的引用频率进行检索,同样时间段内引用频率越高检索频率越低,说明该数据越重要。

image