Python垃圾回收机制
Python垃圾回收机制
引用计数
引用计数-1的条件
- 对象被显式销毁,如
del a
。 - 变量重新赋予新的对象,例如
a=0
。 - 对象离开它的作用域,如
func
函数执行完毕时,func
函数中的局部变量(全局变量不会)。 - 对象所在的容器被销毁,或从容器中删除对象。
标记-清除
- 标记阶段。将所有的对象看成图的节点,根据对象的引用关系构造图结构。从图的根节点遍历所有的对象,所有访问到的对象被打上标记,表明对象是“可达”的。
- 清除阶段。遍历所有对象,如果发现某个对象没有标记为“可达”,则就回收。
分代收集原理
分代回收基于这样的法则:
- 接大部分的对象生命周期短,大部分对象都是朝生夕灭。
- 经历越多次数的垃圾收集且活下来的对象,说明该对象越不可能是垃圾,应该越少去收集。
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
分类:
后端开发日记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?