垃圾回收机制
#coding=utf-8
import sys
print (sys.getrefcount(500111))
a = 5001111 # 创建对象<5001111>,这个对象不允许随意删除
print (sys.getrefcount(a))
b = a # 增加引用,<5001111>的计数
print (sys.getrefcount(5001111 ))
c = [b] # 增加引用. <5001111>的计数
print (sys.getrefcount(5001111))
del a # 减少引用<5001111>的计数
print (sys.getrefcount(5001111))
b = 100 # 减少引用<5001111>的计数
print (sys.getrefcount(5001111 ))
c[0] = -1 # 减少引用<5001111>的计数
print (sys.getrefcount(5001111))
总结
垃圾回收的过程:不断的计数
Ø 同Java语言一样,Python使用了引用计数,这一简单技术来追踪内存中的对象。
Ø 在Python内部记录着所有使用中的对象各有多少引用。
Ø 一个内部跟踪变量,称为一个引用计数器。
Ø 当对象被创建时,就创建了一个引用计数,当这个对象不再需要时,也就是说,这个对象的引用计数变为0 时,它被垃圾回收。但是回收不是"立即"的,由解释器在适当的时机,将垃圾对象占用的内存空间回收。

浙公网安备 33010602011771号