一种自动释放内存方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:30516917 阅读:17 留言:0更新日期:2021-10-27 22:59
本申请实施例公开了一种自动释放内存方法、装置、计算机设备和存储介质;本申请实施例可以获取多个实例化对象;从多个实例化对象中确定引用关系类型为预设引用关系类型的目标实例化对象;识别目标实例化对象的引用路径,得到引用对象;根据目标实例化对象和引用对象之间的引用关系,对引用路径上的引用对象进行减引用操作,并更新目标实例化对象的引用参数和引用对象的引用参数;对目标实例化对象的更新后引用参数以及引用对象的更新后引用参数进行判别处理,得到判别结果;根据判别结果,对目标实例化对象以及所述引用对象进行回收处理,以实现对内存的释放,提高了对内存释放的效率。效率。效率。

【技术实现步骤摘要】
一种自动释放内存方法、装置、计算机设备和存储介质


[0001]本申请涉及通讯
,具体涉及一种自动释放内存方法、装置、计算机设备和存储介质。

技术介绍

[0002]内存(Memory)是计算机设备的重要部件之一,也称为内存储器和主存储器,用于暂时存放中央处理器(CentralProcessingUnit,CPU)中的运算数据,与硬盘等外部存储器交换的数据。内存是外存与CPU进行沟通的桥梁,计算机设备中所有程序的运行都在内存中进行,内存性能的强弱影响计算机设备整体发挥的水平。例如,当计算机设备中运行程序的实例化对象存在循环引用的情况时,会导致计算机设备中的内存不足,从而使得计算机设备的整体性能下降,并使得计算机设备中的应用程序出现卡顿的现象。在对现有技术的研究和实践过程中,本专利技术的专利技术人发现,现有技术都是借助人工手段对计算机设备中的内存垃圾进行识别以及释放,这将降低内存释放的效率。

技术实现思路

[0003]本申请实施例提出了一种自动释放内存方法、装置、计算机设备和存储介质,可以实现对内存的自动释放,从而提高对内存释放的效率。
[0004]本申请实施例提供了一种自动释放内存方法,包括:
[0005]获取多个实例化对象;
[0006]从所述多个实例化对象中确定引用关系类型为预设引用关系类型的目标实例化对象;
[0007]识别所述目标实例化对象的引用路径,所述引用路径包括与所述目标实例化对象存在引用关系的至少一个引用对象;
[0008]根据所述目标实例化对象和所述引用对象之间的引用关系,对所述引用路径上的引用对象进行减引用操作,并更新所述目标实例化对象的引用参数和所述引用对象的引用参数;
[0009]对所述目标实例化对象的更新后引用参数以及所述引用对象的更新后引用参数进行判别处理,得到判别结果;
[0010]根据所述判别结果,对所述目标实例化对象以及所述引用对象进行回收处理,以实现对内存的释放。
[0011]相应的,本申请实施例还提供了一种自动释放内存装置,包括:
[0012]获取单元,用于获取多个实例化对象;
[0013]确定单元,用于从所述多个实例化对象中确定引用关系类型为预设引用关系类型的目标实例化对象;
[0014]识别单元,用于识别所述目标实例化对象的引用路径,所述引用路径包括与所述目标实例化对象存在引用关系的至少一个引用对象;
[0015]减引用操作单元,用于根据所述目标实例化对象和所述引用对象之间的引用关系,对所述引用路径上的引用对象进行减引用操作,并更新所述目标实例化对象的引用参数和所述引用对象的引用参数;
[0016]判别处理单元,用于对所述目标实例化对象的更新后引用参数以及所述引用对象的更新后引用参数进行判别处理,得到判别结果;
[0017]回收处理单元,用于根据所述判别结果,对所述目标实例化对象以及所述引用对象进行回收处理,以实现对内存的释放。
[0018]在一实施例中,所述减引用操作单元,包括:
[0019]筛选子单元,用于根据所述目标实例化对象和所述引用对象之间的引用关系,在至少一个引用对象中筛选出和所述目标实例化对象之间存在直接引用关系的直接引用对象,以及和所述目标实例化对象之间存在间接引用关系的间接引用对象;
[0020]减引用操作子单元,用于根据所述直接引用关系,对所述引用路径上的直接引用对象进行减引用操作,并更新所述直接引用对象的引用参数;
[0021]识别子单元,用于对所述间接引用对象进行识别,得到所述间接引用对象的数量;
[0022]更新子单元,用于根据所述间接引用对象的数量,更新所述目标实例化对象的引用参数和所述间接引用对象的引用参数。
[0023]在一实施例中,所述更新子单元,包括:
[0024]判别处理模块,用于将所述间接引用对象的数量和预设数量判别条件进行判别处理;
[0025]更新模块,用于当所述间接引用对象的数量不符合预设数量判别条件时,对所述间接引用对象进行减引用操作,并更新所述间接引用对象的引用参数和所述目标实例化对象的引用参数。
[0026]在一实施例中,所述减引用操作子单元,包括:
[0027]删除模块,用于根据所述直接引用关系,删除目标实例化对象和所述直接引用对象之间的直接引用路径;
[0028]信息发送模块,用于向所述直接引用对象发送引用释放信息,以使得所述直接引用对象根据所述引用释放信息更新所述引用参数。
[0029]在一实施例中,所述判别处理单元,包括:
[0030]访问子单元,用于根据引用路径,对所述目标实例化对象和所述引用对象进行访问,得到当前访问对象的更新后引用参数;
[0031]匹配子单元,用于将当前访问对象的更新后引用参数和预设引用参数阈值进行匹配;
[0032]添加子单元,用于当所述更新后引用参数和所述预设引用参数阈值相匹配时,对所述当前访问对象添加回收标识。
[0033]在一实施例中,所述回收处理单元,包括:
[0034]识别子单元,用于对所述目标实例化对象以及所述引用对象进行识别,得到所述目标实例化对象的标识信息和所述引用对象的标识信息;
[0035]匹配子单元,用于分别将所述目标实例化对象的标识信息和所述引用对象的标识信息和预设回收标识进行匹配;
[0036]第一回收处理子单元,用于当所述目标实例化对象的标识信息和所述预设回收标识相匹配时,将所述目标实例化对象进行对象回收处理;
[0037]第二回收处理子单元,用于当所述引用对象的标识信息和所述预设回收标识相匹配时,将所述引用对象进行对象回收处理。
[0038]本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面的各种可选方式中提供的方法。
[0039]相应的,本申请实施例还提供一种存储介质,所述存储介质存储有指令,所述指令被处理器执行时实现本申请实施例任一提供的自动释放内存方法。
[0040]本申请实施例可以获取多个实例化对象;从多个实例化对象中确定引用关系类型为预设引用关系类型的目标实例化对象;识别目标实例化对象的引用路径,得到引用对象;根据目标实例化对象和引用对象之间的引用关系,对引用路径上的引用对象进行减引用操作,并更新目标实例化对象的引用参数和引用对象的引用参数;对目标实例化对象的更新后引用参数以及引用对象的更新后引用参数进行判别处理,得到判别结果;根据判别结果,对目标实例化对象以及所述引用对象进行回收处理,以实现对内存的释放,提高了对内存释放的效率。
附图说明
[0041]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动释放内存的方法,其特征在于,包括:获取多个实例化对象;从所述多个实例化对象中确定引用关系类型为预设引用关系类型的目标实例化对象;识别所述目标实例化对象的引用路径,所述引用路径包括与所述目标实例化对象存在引用关系的至少一个引用对象;根据所述目标实例化对象和所述引用对象之间的引用关系,对所述引用路径上的引用对象进行减引用操作,并更新所述目标实例化对象的引用参数和所述引用对象的引用参数;对所述目标实例化对象的更新后引用参数以及所述引用对象的更新后引用参数进行判别处理,得到判别结果;根据所述判别结果,对所述目标实例化对象以及所述引用对象进行回收处理,以实现对内存的释放。2.如权利要求1所述的自动释放内存的方法,其特征在于,所述根据所述目标实例化对象和所述引用对象之间的引用关系,对所述引用路径上的引用对象进行减引用操作,并更新所述目标实例化对象的引用参数和所述引用对象的引用参数,包括:根据所述目标实例化对象和所述引用对象之间的引用关系,在至少一个引用对象中筛选出和所述目标实例化对象之间存在直接引用关系的直接引用对象,以及和所述目标实例化对象之间存在间接引用关系的间接引用对象;根据所述直接引用关系,对所述引用路径上的直接引用对象进行减引用操作,并更新所述直接引用对象的引用参数;对所述间接引用对象进行识别,得到所述间接引用对象的数量;根据所述间接引用对象的数量,更新所述目标实例化对象的引用参数和所述间接引用对象的引用参数。3.如权利要求2所述的自动释放内存的方法,其特征在于,所述根据所述间接引用对象的数量,更新所述目标实例化对象的引用参数和所述间接引用对象的引用参数,包括:将所述间接引用对象的数量和预设数量判别条件进行判别处理;当所述间接引用对象的数量不符合预设数量判别条件时,对所述间接引用对象进行减引用操作,并更新所述间接引用对象的引用参数和所述目标实例化对象的引用参数。4.如权利要求2所述的自动释放内存的方法,其特征在于,所述根据所述直接引用关系,对所述引用路径上的直接引用对象进行减引用操作,并更新所述直接引用对象的引用参数,包括:根据所述直接引用关系,删除目标实例化对象和所述直接引用对象之间的直接引用路径;向所述直接引用对象发送引用释放信息,以使得所述直接引用对象根据所述引用释放信息更新所述引用参数。5.如权利要求1所述的内存释放方法,其特征在于,所述对所述目标实例化对象的更新后引用参数以及所述引用对象的更新后引用参数进行判别处理,得到判别结果,包括:根据引用路径,对所述目标实例...

【专利技术属性】
技术研发人员:翁轩锴
申请(专利权)人:深圳市腾讯网域计算机网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1