python中循环引用以及标记清除的问题分析

技术python中循环引用以及标记清除的问题分析这篇文章主要介绍python中循环引用以及标记清除的问题分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!=1 在循环引用的情况下,引用计数就不好事

本文主要介绍python中循环引用和标签清除的问题分析。很详细,有一定的参考价值。感兴趣的朋友一定要看完!

=

00-1010循环引用:的危险将导致内存溢出,因为循环引用计数不能为零。

解决方案:

标记

1 在循环引用的情况下,引用计数就不好事了,这时候就需要用到标记清除

。引用计数加1一次,值减为0后应该回收,所以这里有一个问题。

Cpython的垃圾收集机制不是一直运行,而是每隔一段时间运行一次,所以会出现效率问题。

为了保证效率,cpython采用了代回收,提高了效率。

子恢复:

1老年常用数据:

旧扫描(比如每小时扫描一次)的频率可能比较低,有些旧数据可能还在使用,所以扫描的频率比较低。

2年轻一代数据:名新生

扫描年轻频带的频率(例如,每5分钟一次)可能相对较高,

因为有些新数据一生成就可能被丢弃,这样内存空间

2 关于标记清除的效率问题(低)

就可以及时清理。首先来说说变量:的概念。

1变量名:没有值,只是指向一个内存地址。

2分配符号

3变量值:这是存储数据的地方。

变量存储在内存中,变量名存储在堆栈中,变量值存储在堆中。

我们只能操作堆,也就是变量值,而不能操作变量名的存储位置。

例如:x=1

x=2

X最终等于2,因为X指向的内存地址发生了变化。

我们都通过变量名来访问值,并且会有一个标记过程。堆栈区域中存在的对象称为GCRoots对象。

它会扫描栈区(变量名)中的所有内容,将栈区中所有对象直接或间接访问的对象标记为活动对象,其余为非活动对象,应清除。

例如,l1=[1]

l2=[2]

l1 .追加(l2)

l2 .追加(l1)

dell1

戴尔2

GCRoots的可访问对象是什么?可以通过堆栈区域(变量名)到达(访问)的对象称为GCRoots可达对象。

l1是一个GCRoots,del从指向的内存地址解除l1的绑定,L1没有引用计数。以上就是《python中循环引用和标记清除的分析》一文的全部内容。感谢阅读!希望分享的内容对大家有所帮助。更多相关知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/93187.html

(0)

相关推荐

  • 如何判断您是否需要台湾服务器

    技术如何判断您是否需要台湾服务器您如何真正知道您的网站是否需要租用台湾服务器?出现以下三种情况就可以考虑将业务迁移到台湾地区的服务器了1. 客户访问您的网站时加载速度太慢。 网站速度很重要。如果您的网站加载时间超过3秒,

    礼包 2021年10月19日
  • Word图标未显示在.doc和.docx文档文件怎么办

    技术Word图标未显示在.doc和.docx文档文件怎么办这篇文章主要介绍了Word图标未显示在.doc和.docx文档文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编

    攻略 2021年11月18日
  • 我的学习旅程

    技术我的学习旅程 我的学习旅程学习JAVA最基础也是最难的在学习的开始期间也总是怀疑自己没有动手能力,是否能够坚持下去,但不断对自己说这是我的兴趣爱好,我要慢慢;慢慢地走
    学习思路 每次在学习新地知识点

    礼包 2021年12月23日
  • 硫酸铜的化学式,氯化钠、碳酸钠、硫酸铜的比较

    技术硫酸铜的化学式,氯化钠、碳酸钠、硫酸铜的比较离子检验 :NaCl用AgNO3,生成白色沉淀AlClNa2CO3用酸检验硫酸铜的化学式,生成气泡且与石灰水生成CaCO3白色沉淀CuSO4用可溶性碱检验,如Ca(OH)2

    生活 2021年10月22日
  • 第一条铁路,中国第一条铁路建设几年

    技术第一条铁路,中国第一条铁路建设几年中国第一条小铁路——1865年,英国商人杜兰德在北京宣武门外沿着护城河修建了一条一里长“展览铁路”德小铁路,这是中国出现最早的一条铁路第一条铁路。不久,清统治者以:“观者骇怪”为由,

    生活 2021年10月19日
  • 24小时自助下单平台网站便宜,抖音低价自助下单平台?

    技术24小时自助下单平台网站便宜,抖音低价自助下单平台?抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想

    测评 2021年11月10日