关于Python的垃圾回收

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

1. 引用计数法:

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

2. 标记-清除:

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

3. 分代回收:

  • 原理:提升效率的策略。Python 将对象分为三代(0, 1, 2)。
  • 逻辑: 刚创建的对象在 0 代。如果一次 GC 后它还活着,就移入 1 代,以此类推。
  • 核心思想: 越老的对象越不容易死。GC 扫描 0 代的频率最高,扫描 2 代的频率最低,从而减少性能开销。
相关推荐
xcLeigh2 小时前
金融数据实时行情API使用教程:如何跨市场查询多品种的实时行情数据
python·websocket·金融·股票·api·期货·外汇
让学习成为一种生活方式2 小时前
如何根据过滤的pep序列进一步过滤gff3文件--python015
开发语言·人工智能·python
qijiabao41132 小时前
深度学习|可变形卷积DCNv3编译安装
人工智能·python·深度学习·机器学习·cuda
m5655bj2 小时前
通过 Python 提取 PDF 表格数据
服务器·python·pdf
玄同7652 小时前
面向对象编程 vs 其他编程范式:LLM 开发该选哪种?
大数据·开发语言·前端·人工智能·python·自然语言处理·知识图谱
南_山无梅落2 小时前
PyCharm 安装了库却无法 Alt + Enter 导入?(简洁排查版)
ide·python·pycharm·虚拟环境·alt·enter·.venv
ID_180079054732 小时前
Python采集闲鱼商品详情API:JSON数据解析与应用实践
数据库·python·json
APIshop2 小时前
API 接口文档测试:从“能跑”到“敢上线”的完整闭环
爬虫·python
AndrewHZ2 小时前
【复杂网络分析】如何入门Louvain算法?
python·算法·复杂网络·社区发现·community det·louvain算法·图挖掘