首页 > 编程语言 > 详细

关于python垃圾回收机制

时间:2021-01-15 09:50:39      阅读:24      评论:0      收藏:0      [点我收藏+]

Python的垃圾回收机制到底是什么回事?从网上找到一大堆的文档,看的也是一知半解,最终就学会了一句话:引用计数器为主、分代码回收和标记清除为辅。 ??

看了wusir的文章之后,给大家详细说一下Python的垃圾回收机制。


1. 在python的C源码中有一个名为refchain的环状数据链表。在python中,只要创建了新的对象都会添加到这个refchain链表中技术分享图片

2. 引用计数器

refchain中的对象内部都有一个 ob_refcnt 来保存当前对象的引用计数器,顾名思义就是自己被引用的次数。

比如 name = jk

nickname = name

age = 24

jk的ob_refcnt = 2   、   24的ob_refcnt = 1

当一个值被多次引用时,不会在内存中重复创建数据。而是引用计数器+1。当对象被销毁时,引用计数器-1。如果引用计数器为0,则将对象从refchain链表中摘除,同时在内存中进行销毁。

3. 标记清除&分代回收

引用计数器进行辣鸡回收非常方便和简单。但是会存在循环引用的问题,导致一些数据无法被回收。(未完。。)

关于python垃圾回收机制

原文:https://www.cnblogs.com/chale181106/p/14280039.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!