贵阳 [ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识

Python培训之垃圾回收机制是什么

培训

  不同于C/C++,像Python这样的语言是不需要程序员写代码来管理内存的,它的GC(Garbage Collection)机制 实现了自动内存管理。GC做的事情就是解放程序员的双手,找出内存中不用的资源并释放这块内存。 下面我们来看看Python的GC是怎么做的:

  Python自带的解释器CPython主要使用了三种垃圾回收机制(引用计数为主,标记-清除和分代回收为辅):

  引用计数

  标记清除

  分代回收

  下面让我们分别了解下这几种机制:

  引用计数

  引用计数法Reference Counting的原理是,每个对象都维护一个引用计数字段,记录这个对象被引用的次数(如果不清楚变量->引用->对象 的问题,可以查看这篇文章Python的深拷贝和浅拷贝),如果有新的引用指向对象,对象引用计数就加一,引用被销毁时,对象引用计数减一,当用户的引用计数为0时,该内存被释放。可以通过sys.getrefcount()函数查看对象被引用的个数。

  这种方法主要存在两种问题:

  需要去维护引用计数,存在执行效率问题

Python培训之垃圾回收机制是什么

  无法解决循环引用问题

  所谓循环引用就是:有一组对象的引用计数不为0,但是这组对象实际上并没有被变量引用,它们之间是相互引用,而且也不会有其他的变量再去引用这组对象,最终导致如果使用 引用计数法 这些对象占用的内存永远不会被释放。

  写一段代码举个例子:

  In [23]: a = []

  In [24]: b = []

  In [25]: a.append(b)

  In [26]: b.append(a)

  In [27]: a

  Out[27]: [[[...]]]

  In [28]: b

  Out[28]: [[[...]]]

  可以看到,现在a b都出现了循环引用,此时就算使用del语句删除变量,被使用的内存也不会被回收,所以就需要第二种GC机制:

  标记清除

  标记清除Mark-Sweep是针对循环引用问题的回收机制,作用的对象是容器类型的对象(比如:list、set、dict等)。

  原理是:通过根节点对象(不会被删除的对象)对有向图把所有活动对象打上标记,然后回收没有被标记的非活动对象。

  分代回收

  分代回收是建立在标记清除基础上的一种辅助回收容器对象的GC机制。 无论开发的程序类型如何,规模如何,都有这样的相同之处:一些比例的内存生存周期都很短,而另一些内存的生存周期比较长,可能会伴随着整个程序的开始和结束。 所以分代回收就根据系统中内存存活时间把它们划分成不同的集合:一共分成三个集合,每个集合称为一个代。 它们的垃圾收集频率 随 对象 存活存活时间的增大 而 减小。也就是说:对于存活时间越长的对象,就越不可能是垃圾,减少对其的收集频率。而新创建的对象都在第一代,第一代集合总数达到上限后,会触发GC机制:可以回收的对象所占的内存被释放,不能被回收的移到中年代。

相关内容

贵阳135所!第三批恢复线下培训的校外培训机构名单公布

近日,贵州省教育厅公布全省第三批389所恢复线下培训的校外培训机构名单。具体有哪些呢?一起来看看吧!↓↓↓全省第三批恢复线下培训校外培训机构名单贵阳市六盘水市安顺市黔东南州黔西南州来源:贵州教育发布···

最新!贵阳这100所校外培训机构可恢复线下培训

6月22日,省教育厅发布《关于公布全省891所恢复线下培训校外培训机构名单的通知》,经机构申请、县级评估、市州审核、省教育厅批准,全省共有891所校外培训机构将恢复线下培训。其中,贵阳市德芬高考补习学校、贵阳市云岩区直通车培训学校、贵阳市云···

严查各类违规开展的学科类培训!贵阳南明校外培训机构白名单更新

为进一步强化校外教育培训监管工作,严厉打击各类隐形变异违法违规学科类校外培训,切实规范非学科类培训机构管理,不断巩固“双减”工作成果。近日,贵阳市南明区教育局联合贵阳市南明区市场监督管理局、贵阳市公安局南明分局、贵阳市南明区消防救援大队以及···

省人大常委会机关举办党的二十大精神专题培训

近日,省人大常委会机关举办党的二十大精神专题培训在贵阳开班,深入学习宣传贯彻落实党的二十大精神、习近平总书记系列重要讲话精神。贵州师范大学教授、博士生导师,贵州省哲学社会科学学术带头人李红军以《解码“中国式现代化”》为题,讲解了党的百年奋斗···

贵阳幼高专邀请农技专家为帮扶村群众开展猕猴桃种植培训

“他讲这个是有道理的!”“哦,原来是这样做的,那我们原来剪就不对头。”“专家,你讲慢点,我还没得听懂。”“早晓得你这么专业,我就应该多喊点果农来听!”“谢谢龙教授,希望你能经常来指导和帮助我们。”在卫城镇金旗村大土组的猕猴桃种植园里传来感叹···

贵阳贵安2023年民间河长专题培训举行

贵阳网·甲秀新闻讯 6月3日,“共谋人与自然和谐共生现代化 共享美好绿色新生活”——贵阳贵安2023年民间河长专题培训(第一期)举行。专题培训由贵阳贵安河长制办公室主办,也是2023年“贵州生态日”系列活动之一。培训由室内主题学习与户外巡···

贵阳市生态环境局观山湖分局开展2023年安全生产专题培训

2023年6月是全国第22个“安全生产月”,为切实做好辖区安全生产行业监管责任,督促企业落实安全生产主体责任,牢牢守好环境安全红线和底线,坚决防范生态环境安全事故发生,6月29日,贵阳市生态环境局观山湖分局组织辖区内20余家企业参会,开展2···

贵阳贵安:开展“百县千乡万户”农村实用人才科学施肥技术培训活动

9月22日,贵阳市农业农村局在清镇市举办2023年贵阳市“百县千乡万户”科学施肥技术培训活动,开展主题为2023年贵阳市农村实用人才带头人(科学施肥及土壤健康管理技术专题)培训会。培训会上,华南农业大学资源环境学院植物营养学系邓兰生教授采用···

贵阳市生态环境局南明分局组织召开“无废城市”创建培训工作会

为加快落实创建“无废细胞”,助力“无废城市”建设,8月31日,贵阳市生态环境局南明分局组织召开“无废城市”创建培训工作会,全区共计32家单位参会。会上,贵阳市生态环境局南明分局向参会人员介绍了建设“无废城市”的建设背景、主要任务和建设目标;···

贵阳市开展2022年茶园冬管培训

为促进茶叶产量和品质稳定提升,进一步提高茶园管理应用水平,推动茶产业高质量发展,2022年11月15日,由贵阳市农业技术推广站组织的贵阳市2022年茶园冬管培训班在清镇市红枫湖镇红枫山韵茶场举行。开阳县、息烽县、清镇市、花溪区农技人员、茶企···

澜沧江-湄公河沿岸国家轨道交通技能人才第四期培训在贵阳职业技术学院开班

来源:人民网-贵州频道 原创稿人民网贵阳5月24日电 (李丽萍)5月23日,2023中国-东盟教育交流周高技能人才“中文+技能”在线培训暨澜沧江-湄公河沿岸国家轨道交通技能人才培训第四期开班典礼在贵阳职业技术学院举行。将有200余名学员通过···

想工作先培训?贵阳小伙应聘游戏主播,结果“背上”两万多元贷款

10月底,彭女士的弟弟在贵阳市花果园的一家公司,应聘了一份游戏主播的工作。这一个多月过去了,钱没赚到不说,反而多了两万多元的贷款。彭女士说,她弟弟小彭应聘的是贵州星遇星文化传媒有限公司游戏主播的岗位,一开始招聘页面上没有任何培训的内容。签了···

贵阳市农业农村局组织开展水稻中后期重大病虫害统防统治现场培训会

2023年8月4日,贵阳市农业农村局在花溪区高坡乡摆龙村,开展水稻中后期重大病虫害统防统治现场培训会。在培训会现场,贵阳市农业农村局讲解了水稻“两迁”害虫、稻瘟病、纹枯病等病虫害的发生规律、安全用药、绿色防控、自我防护、包装废物处理等内容,···

2023数博会驾驶员培训工作举行

贵阳网·甲秀新闻讯5月19日,记者从2023中国国际大数据产业博览会(以下简称2023数博会)执委会嘉宾组获悉,继召开一对一接待服务人员培训工作之后,嘉宾组再次组织2023数博会负责执委会落地接待的驾驶人员和车辆服务合作单位,集中开展为期两···

贵阳市TOD专题培训班开班

为更好推进TOD发展理念在贵阳落地生根,进一步提高贵阳市相关部门和从业人员TOD理论水平及业务能力,3月6日,由贵阳市交委(市GEF项目办)、贵阳市交通发展研究中心主办的贵阳市TOD专题培训班开班。  本次培训邀请了清华大学、中国城市规划设···

贵阳校外培训机构现状调查:部分机构剥离学科培训,非学科机构创新业务模式,一些机构选择退出市场

“小兔,你这次还参加运动会的跑步比赛吗?”“对,上次是我太骄傲了,结果让乌龟得了冠军,这场我一定不再骄傲,争取在运动会上拿下冠军……”教室内,孩子们身穿各种光鲜亮丽的戏剧服,一个个光彩照人,正沉浸在中英文戏剧表演的乐趣中。孩子们正在进行舞台···

云岩区教育局曝光一批疫情防控工作落实不力校外培训机构

贵阳网·甲秀新闻讯 按照省市联动指挥部统筹部署,根据贵阳市教育局、云岩区教育局关于校外培训机构恢复线下教学的相关要求,10月22日、23日,云岩区教育局校外培训机构监管科以“四不两直”方式对校外培训机构线下复课疫情防控工作情况开展检查。检查···

2022年贵阳市“筑创荟科技创新创业辅导培训班”第三期举办

贵阳网·甲秀新闻讯 12月2日,2022年贵阳市“筑创荟•科技创新创业辅导培训班”第三期在贵州交通职业技术学院举办,来自贵州交通职业技术学院的50名在校大学生参加培训。据了解,本次培训采取“理论授课+案例剖析+项目诊断”的模式,聘请专家导师···

‌打造工业人才“蓄水池” 汇聚“强省会”智力支撑——贵阳市工投公司管培生培训拉开序幕

7月22日,贵阳市工投公司管培生培训拉开序幕。经多层选拔,来自全国各大高校的百余名大学毕业生以一堂党课开启在国有企业的“入职”体验。作为全市唯一一家以工业命名的市属国有企业,市工投公司历经2019和2022年两轮重组,整合贵阳市一批老国有企···

贵阳职业技术学院举行2023年秋季学期教职工开学培训

为进一步加强学院师德师风建设,教育引导全体教职工不断提高思想水平、政治觉悟、道德品质、文化素养,进一步明大德、守公德、严私德,助力构建风清气正的教育生态。8月23日至24日,学院在大礼堂举办了开学专题培训,学院700余名教职工参加了此次培训···

友情链接