前言
我们已经知道,python垃圾回收机制(Garbage Collection,简称GC)主要是以下2个:
- 引用计数器机制
- 垃圾回收机制
如有需要了解这两个机制的详细内容,请参考之前的文章:
python垃圾回收机制之引用计数器
https://blog.csdn.net/qq_40883524/article/details/131923549?spm=1001.2014.3001.5501
python内存回收机制–垃圾回收机制
https://blog.csdn.net/qq_40883524/article/details/131923854?spm=1001.2014.3001.5501
通过这两个机制,python会自动帮我们实现垃圾回收。
如果我们每创建一个对象,就对其进行垃圾检测,这样做是非常耗时且浪费性能的,那python提供了哪些机制来减少垃圾检测的频率呢?
1,分代回收机制
原理
- 默认一个对象被创建出来后,属于0代
- 如果经历这一代垃圾回收后,依然存活,则划分到下一代
- 垃圾回收的周期顺序为:
a,0代“垃圾回收”一定次数,会触发0代和1代回收
b,1代“垃圾回收”一定次数,会触发0代 1代和2代回收
也就是说,0 1 2代越往后,检测次数会越少