Python垃圾回收机制学习有哪些要点
Admin 2022-05-25 群英技术资讯 1890 次浏览
这篇文章给大家分享的是“Python垃圾回收机制学习有哪些要点”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。也即采用“引用计数“为主(实时性,一旦没有引用,内存就直接释放了),“标记-清除”与“分代收集”两种机制为辅的策略。
为每一个对象维护一个引用计数器,当一个对象的引用被创建或者复制时,(对象的引用)计数器+1,当一个对象的引用被销毁时,计数器的值-1,当计数器的值为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。
“标记-清除”的出现打破了循环引用,也就是它只关注那些可能会产生循环引用的对象,Python中的循环引用总是发生在容器container对象之间,也就是能够在内部持有其他对象的对象(比如:list、dict、class等)。这也使得该方法带来的开销只依赖于容器对象的数量。
原理:
将集合中对象的引用计数复制一份副本,用于找寻root object集合(该set中的对象是不能被回收的)。当成功找到root object集合,首先将现在的内存链表一分为二,一条链表维护root object集合,成为root链表;另外一条维护剩下的对象,成为unreachable链表。
一旦在标记的过程中,发现现在在unreachable链表且可能存在被root链表中直接或间接引用的对象,就将其从unreachable链表中移到root链表中;当完成标记后,unreachable链表中剩下的所有对象就是垃圾对象了,接下来的垃圾回收只需限制在unreachable链表中即可。
缺点:
该机制所带来的额外操作和需要回收的内存块成正比。
活的越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。
提供了若干的API,实现Java与其他语言的通信。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在工作中难免会遇到需要批量整理文件的情况,当需要从一堆文件中将部分文件批量地转移时,如果手工一一转移难免浪费时间,这篇文章主要给大家介绍了关于如何在python中用os模块实现批量移动文件的相关资料,需要的朋友可以参考下
这篇文章主要介绍了如何利用Python编写一个藏头诗在线生成器,文中的示例代码讲解详细,感兴趣的同学可以跟随小编一起动手尝试一下
在聊天工具大肆侵入我们生活各个方面的今天,各种消息无时无刻不在侵扰我们的每一寸时间,这种情况下,一个聊天的机器人就很有必要了.今天,我们来学习一下使用 Python 开发一个钉钉的应答机器人,助你「人生苦短,少回消息」,需要的朋友可以参考下
lambda表达式是什么?lambda 表达式是 Python 中创建匿名函数的一个特殊语法 我称 lambda 语法本身为 lambda 表达式,而它返回的
这篇文章主要给到大家分享的是关于Python中对mysql数据做模糊查询的思路以及操作,主要介绍用sql语句做多条件模糊查询,小编认为比较实用,因此分享给大家作参考,下面我们就一起来了解一下python的mysql模糊查询。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008