GC机制
python的垃圾回收,其实高级的语言都有自己的垃圾回收机制简称GC,python当中主要通过三种方式解决垃圾回收的方式,引用计数、标记清除、分代回收
1 引用计数:如果有新的引用指向对象,对象引用计数就加1,引用被销毁时,对象引用计数减1,当用户的引用计数为0时,该内存被释放
2 标记清除:首先标记对象(垃圾检测),然后清除垃圾(垃圾回收)
--->首先初始所有对象标记为白色,并确定根节点对象(这些对象是不会被删除),标记它们为黑色(表示对象有效)。 将有效对象引用的对象标记为灰色(表示对象可达,但它们所引用的对象还没检查),检查完灰色对象引用的对象后, 将灰色标记为黑色。重复直到不存在灰色节点为止。最后白色结点都是需要清除的对象
3 分代回收:垃圾回收器会更频繁的处理新对象
--->一个新的对象即是你的程序刚刚创建的,而一个老的对象则是经过了 几个时间周期之后仍然存在的对象。Python会在当一个对象从零代移动到一代,或是从一代移动到二代的过程中提升 这个对象.经历越多次数的垃圾收集且活下来的对象,说明该对象越不可能是垃圾,应该越少去收集。
装饰器、生成器、迭代器
标签:知识点,标记,对象,回收,面试,计数,引用,垃圾
From: https://www.cnblogs.com/zxr1002/p/16964628.html