python 垃圾回收机制(GC)

2017-11-06  本文已影响0人  机械师的呆子

python 中的垃圾回收机制

Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“隔代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。

1、引用计数法(标记清除法)当引用计数为0时,系统将此部分当做垃圾,自动回收

注:针对相互引用的东西,引用计数法无法使用

引用计数机制的优点:

1、简单

2、实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实时性还带来一个好处:处理回收内存的时间分摊到了平时。

引用计数机制的缺点:

1、维护引用计数消耗资源

2、循环引用

2、隔代回收法

隔代回收是一种典型的以空间换时间的技术,这种思想简单点说就是:对象存在时间越长,越可能不是垃圾,应该越少去收集。

这样的思想,可以减少标记-清除机制所带来的额外操作。隔代就是将回收对象分成数个代,每个代就是一个链表(集合),代进行标记-清除的时间与代内对象存活时间成正比例关系。

上一篇下一篇

猜你喜欢

热点阅读