关于Python的垃圾回收

知识点查漏补缺:Python 内存管理

1. 引用计数法:

  • 原理:每个对象维护一个计数器,当有变量引用它时加一,引用失效时减一,直到为零时即释放内存。
  • 优点:简单和实时
  • 致命伤:循环引用。也就是说,假如A引用了B,B引用了A,那他们的计数就永远不会清零,就会造成内存泄漏。

2. 标记-清除:

  • 原理:为了解决循环引用,它会从根对象开始遍历。
  • 逻辑:能被找到的标记为活动,找不到的,即使互相引用,也被判定为垃圾。

3. 分代回收:

  • 原理:提升效率的策略。Python 将对象分为三代(0, 1, 2)。
  • 逻辑: 刚创建的对象在 0 代。如果一次 GC 后它还活着,就移入 1 代,以此类推。
  • 核心思想: 越老的对象越不容易死。GC 扫描 0 代的频率最高,扫描 2 代的频率最低,从而减少性能开销。
相关推荐
程序员:钧念2 小时前
深度学习与强化学习的区别
人工智能·python·深度学习·算法·transformer·rag
数据与后端架构提升之路3 小时前
TeleTron 源码揭秘:如何用适配器模式“无缝魔改” Megatron-Core?
人工智能·python·适配器模式
hele_two4 小时前
快速幂算法
c++·python·算法
l1t4 小时前
利用DeepSeek将python DLX求解数独程序格式化并改成3.x版本
开发语言·python·算法·数独
Cemtery1166 小时前
Day26 常见的降维算法
人工智能·python·算法·机器学习
星空椰7 小时前
快速掌握FastAPI:高效构建Web API
python·fastapi
塔尖尖儿7 小时前
Python中range()到底是什么演示
python
Ethan-D8 小时前
#每日一题19 回溯 + 全排列思想
java·开发语言·python·算法·leetcode
weixin_446934039 小时前
统计学中“in sample test”与“out of sample”有何区别?
人工智能·python·深度学习·机器学习·计算机视觉