首页 > 编程语言 >Python特殊机制之垃圾回收机制

Python特殊机制之垃圾回收机制

时间:2023-12-06 14:57:32浏览次数:38  
标签:指向 Python 内存空间 回收 垃圾 机制 变量名

垃圾回收机制

【1】参考博客:

【5.0】Python基础之垃圾回收机制 - Chimengmeng - 博客园 (cnblogs.com)

【2】博客摘要

  • 垃圾回收机制作为python解释器自带的一种功能,其目的在于帮助系统更好的管理内存,提高程序的运行效率

    • 垃圾回收机制,用来回收不可用的变量值所占用的内存空间(在内存中,没有变量名指向的数据都是垃圾数据)

    • 垃圾回收机制,引用计数为主,垃圾回收、分代回收为辅。

  • Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。

    • 在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率。
  • 一个变量值可以有多个变量名指向,有一个变量名指向,引用计数就是1,有两个就是2

    • 只要引用计数不为0,这个变量值就不是垃圾数据,当引用计数为0了,说明这个变量值就没用了,就可以清除了
一个变量名只能指向一个内存空间: 意味着一个变量名在某一时刻只能代表一个值。当你给一个变量赋新值时,它将指向新的内存空间,不再指向之前的。

一个内存空间可以被多个变量名指向: 多个变量名可以同时指向相同的内存空间。这意味着如果你改变了这个内存空间的值,所有指向它的变量都会受到影响。
  • 较为复杂的底层机制,个人认为知晓操作逻辑即可

标签:指向,Python,内存空间,回收,垃圾,机制,变量名
From: https://www.cnblogs.com/Lea4ning/p/17879519.html

相关文章

  • Python基础之流程控制
    流程控制【1】流程控制语句介绍程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句。【2】顺序结构顺序结构是指按照代码书写的顺序,一条语句接着一条语句执行,没有跳过、重复或其他特殊的结构。【3】分支结构(1)单分支结构(if)if+条件1:换行......
  • Python基础之Python基本构成
    【一】注释语法【1】什么是注释注释就是就是对代码的解释说明,注释的内容不会被当作代码运行【2】为什么要注释增强代码的可读性【3】如何使用注释代码注释分单行和多行注释1、单行注释用#号,可以跟在代码的正上方或者正后方#这是一段通过“#+注释内容”创造的注......
  • python第三天
    引入随机数:random1)random.randit(1,10)随机生成1.10之间的整数2)random.uniform(1,10)随机生成1.10之间的浮点数3)random.getstate(),获取fandom的种子改进的小游戏,print('---------------------------------来玩一个游戏吧----------------------------')importrandomanswe......
  • python开发中常见问题
    在Python开发中,常见问题和解决方案有很多。以下是一些常见问题及其解决方案,并给出了相应的代码示例:ImportError:Nomodulenamed'xxx'这个错误通常是因为缺少所需的模块。解决方法是使用pip安装相应的模块。#安装缺少的模块pipinstallxxxSyntaxError:invalidsyntax这个错......
  • 数据库的锁和MVCC机制
    数据库的锁机制,是数据库为了保证数据的一致性和完整性,使各种共享资源在被并发访问时变得有序所设计的一种规则。之前讲到过事务,提到事务的ACID原则和隔离的级别一条SQL的背后故事(三)目前较为常见的三种并发控制机制:分别是悲观并发控制(锁)、乐观并发控制(乐观锁)和多版本并发......
  • 使用Python代码识别股票价格图表模式
    在股票市场交易的动态环境中,技术和金融的融合催生了分析市场趋势和预测未来价格走势的先进方法。本文将使用Python进行股票模式识别。fromcollectionsimportdefaultdictimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.signalim......
  • Pandas数据预处理python 数据分析之4——pandas 预处理在线闯关_头歌实践教学平台
    Pandas数据预处理python数据分析之4——pandas预处理第1关数据读取与合并第2关数据清洗第3关数据转换第1关数据读取与合并任务描述本关任务:加载csv数据集,实现DataFrame合并。编程要求根据提示,在右侧编辑器补充代码,完成本关任务。测试说明平台会对你的代码进行测试,若......
  • 利用python发送邮件
    主要依赖email和smtplib这两个模块。email模块用于构建邮件本身,包括标题,发送人,收件人,抄送人,附件等等。smtplib模块用于登录指定的账户并进行发送的操作。 参考:腾讯企业邮箱通过Python自动发送邮件_腾讯企业邮箱发送邮件附件python-CSDN博客python发邮件详解,smtplib和email......
  • Cplex学术版申请及Python API环境配置
    当使用Cplex时弹出下面错误:CPLEXError1016:CommunityEdition.Problemsizelimitsexceeded.Purchaseathttp://ibm.biz/error1016.不出意外,是因为使用了社区版的Cplex无法求解大规模问题。这时候就需要申请学术版Cplex了。在我寻找Cplex学术版下载教程中,找遍全网都没......
  • 深入探讨Guava的缓存机制
    第1章:引言大家好,我是小黑,今天咱们聊聊GoogleGuava的缓存机制。缓存在现代编程中的作用非常大,它能提高应用性能,减少数据库压力,简直就是性能优化的利器。而Guava提供的缓存功能,不仅强大而且使用起来非常灵活。在咱们深入挖掘之前,先简单说说缓存。缓存,其实就是一种保存数据的手段......