Python 垃圾回收机制

python 中垃圾回收有三种策略:

1.引用计数

2.标记-清除.

3.分代,收集


引用计数,相当于C++中的智能指针,python中是以对象为一个单位,每个单位中会维护一个计数器,当定义,创建或引用变量时,计数器会加1,当删除变量引用时计数器会减一。当计数值为0的时候,释放内存。

由于存在循环引用的问题,因此引入了标记-清除策略,该策略首先确定一个节点(当前不会被回收的节点,一般为全局对象),将它置到可达列表中,遍历可达列表,在可达列表中选取一个节点,把该节点引用过的其他节点也置到可达节点当中,直到可达列表不再增加为止,标记结束,回收不可达节点。

为了提高标记-清除的效率,提出了分代-收集策略,基本思想是:那些长时间在内存中的变量应该比较晚的收回。维护三代,默认为700、10、10,这些数字表示每一代中最多保存的变量数目。当1代超过阈值,回收1.2.3代,当2代超过阈值回收2.3.当3代超过阈值,回收3.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值