关于Python的垃圾回收

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

1. 引用计数法:

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

2. 标记-清除:

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

3. 分代回收:

  • 原理:提升效率的策略。Python 将对象分为三代(0, 1, 2)。
  • 逻辑: 刚创建的对象在 0 代。如果一次 GC 后它还活着,就移入 1 代,以此类推。
  • 核心思想: 越老的对象越不容易死。GC 扫描 0 代的频率最高,扫描 2 代的频率最低,从而减少性能开销。
相关推荐
adaierya10 分钟前
用 AI 解决音频转换编程问题
开发语言·人工智能·python·分类·ai编程
ai小陈10 分钟前
PyTorch梯度累积与裁剪实战:小显存也能稳定训练大批次
人工智能·pytorch·python·深度学习·ai·gpu算力
心易行者12 分钟前
用HTML在线运行搭后台管理系统:5个核心模块+0服务器,3天跑通完整业务
大数据·前端·网络·人工智能·python
shirsl3 小时前
算法 Day1-数组 / 哈希 + 双指针
python·算法·哈希算法
广州山泉婚姻9 小时前
Python序列号源码分析
python
计算机源码社9 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h9 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
小柯南敲键盘10 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_9622972510 小时前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
YCOSA202512 小时前
系统工具使用检测.exe (仅供娱乐)
python·microsoft