知识点查漏补缺:Python 内存管理
1. 引用计数法:
- 原理:每个对象维护一个计数器,当有变量引用它时加一,引用失效时减一,直到为零时即释放内存。
- 优点:简单和实时
- 致命伤:循环引用。也就是说,假如A引用了B,B引用了A,那他们的计数就永远不会清零,就会造成内存泄漏。
2. 标记-清除:
- 原理:为了解决循环引用,它会从根对象开始遍历。
- 逻辑:能被找到的标记为活动,找不到的,即使互相引用,也被判定为垃圾。
3. 分代回收:
- 原理:提升效率的策略。Python 将对象分为三代(0, 1, 2)。
- 逻辑: 刚创建的对象在 0 代。如果一次 GC 后它还活着,就移入 1 代,以此类推。
- 核心思想: 越老的对象越不容易死。GC 扫描 0 代的频率最高,扫描 2 代的频率最低,从而减少性能开销。