小整数对象池、大整数对象池、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时,该对象生命就结束了。
引用计数机制的优点:
- 简单
- 实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实时性还带来一个好处:处理回收内存的时间分摊到了平时。
引用计数机制的缺点:
- 维护引用计数消耗资源
- 循环引用
循环引用
浙公网安备 33010602011771号