qiaoliang0302

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

小整数对象池、大整数对象池、intern机制,gc垃圾回收:引用计数、隔代回收、查看引用计数

#小整数对象池   【-5,257)
i=89
j=89
print(id(i))
print(id(j))
print("-------------------")
#大整数对象池     每一个大整数,均创建一个新的对象

ii=24567
jj=24566
print(id(ii))
print(id(jj))
print("-------------------")

#intern机制                注意:在pycharm中不区分空格等字符。在linux终端中区分
a1="helloworld"
b1="helloworld"
c1="hello world"
d1="hello world"
e1="hello#world"
f1="hello#world"

print(id(a1))
print(id(b1))
print("-------------------")
print(id(c1))
print(id(d1))
print("-------------------")
print(id(e1))
print(id(f1))

 

引用计数机制:
python里每一个东西都是对象,它们的核心就是一个结构体:PyObject
typedef struct_object {
    int ob_refcnt;
    struct_typeobject *ob_type;
} PyObject;

当引用计数为0时,该对象生命就结束了。

引用计数机制的优点:
  • 简单
  • 实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实时性还带来一个好处:处理回收内存的时间分摊到了平时。
引用计数机制的缺点:
  • 维护引用计数消耗资源
  • 循环引用

 

循环引用

 

posted on 2019-01-30 22:59  qiaoliang0302  阅读(151)  评论(0)    收藏  举报