Python回收机制GC

Python回收机制GC
现在的高级语言,如java,c#等都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式,自由管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄漏,悬空指针等bug埋下隐患。对于一个字符串,数组,列表,类甚至数值都是对象的语言,自然不会去让用户处理如何分配回收内存的问题。Python里和java一样采用了垃圾收集机制,不过不一样的是:Python采用的是引用计数机制为主【标记-清除(Ruby)】****分代收集机制为辅的策略。
当一个对象有新的引用时,它的引用计数就会增加,当引用它的对象删除时,它的引用计数就会减少。
引用计数机制的优点:
简单
实时性:一旦没有引用,内存就直接释放。不用像其他机制等到特定时机。还有一个好处就是:处理回收内存的时间分摊到平时。

引用计数机制的缺点
维护引用计数消耗资源
循环引用

list1 = []
list2 = []
list.append(list2)
list.append(list1)

list1和list2相互引用,如果不存在其他对象对他们的引用,list1和list2的引用计数任然为1,所占用的内存永远无法被回收,这个缺点,注定python还将引入新的回收机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值