1.什么是垃圾回收机制
垃圾回收机制(简称GC)是Python解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间
2.什么要用垃圾回收机制?
程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来。
3.垃圾回收机制原理分析
Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率
4.引用计数
4.1直接引用
x = 10
print(id(x))
y = x
z = x
4.2间接引用
x=10
l=['a','b',x] # l=['a'的内存地址,'b'的内存地址,10的内存地址]
5.标记清除:用来解决循环引用带来的内存泄露问题
循环引用=>导致内存泄露
l1=[111,]
l2=[222,]
l1.append(l2) # l1=[值111的内存地址,l2列表的内存地址]
l2.append(l1) # l2=[值222的内存地址,l1列表的内存地址]
del l1 清除l1的链接
del l2 清除l2的链接
清除l1、l1链接后 循环嵌套也会被清除