码迷,mamicode.com
首页 > 编程语言 > 详细

Python中的垃圾回收机制 | Python

时间:2017-11-10 23:08:24      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:pytho   计数   bsp   分配   操作   cti   复制   code   ...   

    -- python垃圾回收机制
        # Python的GC模块(GarbageCollection)-- 垃圾回收模块
        # 主要运用了引用计数来跟踪回收垃圾;
        1.引用计数;
            # 对象被创建或者复制,引用计数加1;--> __init__
            # 对象引用被销毁,引用计数减1; --> __del__
            # 对象就没有再被使用,释放其内存;
            1.优点:实时性,任何内存一旦没有引用指向就会立刻被回收;
            2.缺点:a.维护引用计数的额外操作,跟运行中内存分配,释放,引用赋值成正比,效率低;
                    b.造成循环引用,对象之间相互引用,内存始终没有被释放;
                        如:a = list()
                            b = list()
                            a.append(b)
                            b.append(a)
                            print(a)
                            print(b)
                            >>[[[...]]]
                            >>[[[...]]]
        2.标记-清除
            # 通过**检测方法(看不懂),将对象分成可达和不可达两部分,分别被保留或回收;
            # 底层采用的是链表将这些集合的对象连接在一起;
            # 缺点:过程效率不高;
        3.分代回收
            # 根据内存块存活时间,定义三代对象集合,存活的越久,越减少对它的垃圾收集频率;
            # 也就是说,对象经过垃圾收集次数越多,说明其存活的时间越长;

 

Python中的垃圾回收机制 | Python

标签:pytho   计数   bsp   分配   操作   cti   复制   code   ...   

原文地址:http://www.cnblogs.com/pymkl/p/7816680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!