Python中的垃圾回收机制 | Python

Posted 胡说八道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的垃圾回收机制 | Python相关的知识,希望对你有一定的参考价值。

    -- 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的主要内容,如果未能解决你的问题,请参考以下文章

Python中的垃圾回收机制

Python 中的垃圾回收机制

Python中的垃圾回收机制 | Python

Python中的垃圾回收机制

一文彻底搞懂python的垃圾回收机制及常量池验证

python垃圾回收机制