关于Python的垃圾回收

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

1. 引用计数法:

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

2. 标记-清除:

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

3. 分代回收:

  • 原理:提升效率的策略。Python 将对象分为三代(0, 1, 2)。
  • 逻辑: 刚创建的对象在 0 代。如果一次 GC 后它还活着,就移入 1 代,以此类推。
  • 核心思想: 越老的对象越不容易死。GC 扫描 0 代的频率最高,扫描 2 代的频率最低,从而减少性能开销。
相关推荐
浦信仿真大讲堂18 分钟前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study1 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境2 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境2 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1232 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102162 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb003 小时前
一个项目带你入门AI应用开发01
python
0566463 小时前
Python康复训练——常用标准库
开发语言·python·学习
昆曲之源_娄江河畔3 小时前
Python如何安装flask, pymssql
开发语言·python·flask·pymssql
0566463 小时前
Python康复训练——控制流与函数
开发语言·python·学习