Python 的垃圾回收机制是怎样的?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
Python 采用引用计数为主、标记清除与分代回收为辅:① 引用计数:每个对象记录被引用次数,为 0 立即回收,缺点是无法处理循环引用;② 标记清除:解决循环引用——从根对象出发标记可达对象,清除不可达(多用于容器对象);③ 分代回收:对象分三代(0/1/2),新对象在 0 代,每代回收阈值递增(gc.get_threshold 查看),减少全量扫描。模块 gc 可手动触发 gc.collect()、关闭分代。注意:__del__ 与循环引用会有坑。
回复
0 条回复