python gc

python的垃圾清除机制是以引用技术为主,标记--清除和分代回收为辅。

1.引用计数是指python中的对象每被引用一次就计数加1,删除一次就计数减1,计数为0则被回收,但是循环引用导致计数不为1,则无法被回收,这也是引用计数最大的缺点,为了解决这个问题就引用了标记清除和隔代回收两种辅助机制。

2.标记--清除基本思路是按需分配,等到没有空闲内存的时候从寄存器和程序栈上的引用出发,遍历对象为节点,引用为边界,构成有向图,把所有可以访问到的对象打上标记,然后清扫一遍内存空间,把所有没标记的对象释放。

3.分代回收的整体思想是:将系统中所有的内存块根据其存活时间划分为不同的集合,每个集合就成为一个“代”,垃圾收集频率随着“代”的存活时间的增大而减小,存活时间通常利用经过几次垃圾回收来度量。

python默认定义了三代对象集合,索引数越大,对象存活时间越长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值