域名解析映射到网站空间怎么做sem营销推广
目录
1. 引用计数
2. 垃圾收集(GC)
python的内存管理主要是引用计数和垃圾回收器来进行内存管理
1. 引用计数
每个 Python 对象都有一个引用计数,当引用计数为零时,对象的内存会被释放。
import sysa = [] # 创建一个空列表对象,引用计数为 1
print(sys.getrefcount(a)) # 输出引用计数,应该是 2(包括传递给 getrefcount 的参数引用)b = a # 现在 'a' 和 'b' 都引用同一个列表对象,引用计数增加到 2
print(sys.getrefcount(a)) # 输出引用计数,应该是 3del a # 删除 'a' 的引用,引用计数减少到 2
print(sys.getrefcount(b)) # 输出引用计数,应该是 2del b # 删除 'b' 的引用,引用计数减少到 1
# 当引用计数降为 0 时,列表对象的内存会被释放
2. 垃圾收集(GC)
Python 的垃圾收集器用来处理循环引用的情况,即两个或多个对象互相引用,导致引用计数永远不会归零。
import gcclass Node:def __init__(self, value):self.value = valueself.next = Nonedef create_cycle():a = Node(1)b = Node(2)a.next = bb.next = a # 创建循环引用return a, ba, b = create_cycle()
del a
del b
# 由于循环引用,a 和 b 无法通过引用计数自动释放
gc.collect() # 手动调用垃圾收集器
# 垃圾收集器会检测到循环引用,并释放这些对象的内存