Python垃圾回收机制

Python垃圾回收机制

引用计数 

引用计数-1的条件

  • 对象被显式销毁,如 del a 。
  • 变量重新赋予新的对象,例如 a=0 。
  • 对象离开它的作用域,如 func 函数执行完毕时, func 函数中的局部变量(全局变量不会)。
  • 对象所在的容器被销毁,或从容器中删除对象。

标记-清除

  1. 标记阶段。将所有的对象看成图的节点,根据对象的引用关系构造图结构。从图的根节点遍历所有的对象,所有访问到的对象被打上标记,表明对象是“可达”的。
  2. 清除阶段。遍历所有对象,如果发现某个对象没有标记为“可达”,则就回收。

分代收集原理

分代回收基于这样的法则:

  1. 接大部分的对象生命周期短,大部分对象都是朝生夕灭。
  2. 经历越多次数的垃圾收集且活下来的对象,说明该对象越不可能是垃圾,应该越少去收集。

https://blog.csdn.net/m0_72557783/article/details/125730729?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-125730729-blog-124813102.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

posted @ 2022-10-20 11:26  洪豆豆的记录  阅读(20)  评论(0编辑  收藏  举报