垃圾回收机制

#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 时,它被垃圾回收。但是回收不是"立即"的,由解释器在适当的时机,将垃圾对象占用的内存空间回收。

posted @ 2019-12-23 10:26  进阶的淑琴  阅读(95)  评论(0)    收藏  举报