内存空间回收方法、装置、电子设备及存储介质制造方法及图纸

技术编号:19424727 阅读:30 留言:0更新日期:2018-11-14 10:28
本发明专利技术实施例公开了内存空间回收方法、装置、电子设备及存储介质,获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。第一变量为待执行的指令组中任一变量,可选的,更新后的指令组中在每个变量的最后使用位置均插入有相应的清空指令。使得指令组使用完毕第一变量后,就会清空第一变量占用的内存空间,即不会影响指令组的执行,也会及时清空内存空间中的第一变量,从而不会出现内存空间不足的情况。

【技术实现步骤摘要】
内存空间回收方法、装置、电子设备及存储介质
本专利技术涉及计算机
,更具体的说,是涉及内存空间回收方法、装置、电子设备及存储介质。
技术介绍
计算机指令就是指挥机器工作的指示和命令,程序代码包含一系列按一定顺序排列的指令,执行程序代码的过程就是计算机的工作过程。程序代码涉及多个变量,程序代码在执行过程中,变量会一直占用内存空间。若程序代码(例如,利用java语言编写的程序代码)执行的时间较长,则程序代码包含的变量会一直占用内存空间,导致内存空间不足。
技术实现思路
有鉴于此,本专利技术提供了一种内存空间回收方法、装置、电子设备及存储介质。为实现上述目的,本专利技术提供如下技术方案:一种内存空间回收方法,包括:获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。其中,所述指令组包括至少一个指令集,一个指令集包括一个或多个指令,所述获取待执行的指令组包含的第一变量对应的第一位置包括:获取所述指令组对应的生命周期参数,其中,所述生命周期参数包括所述至少一个指令集分别对应的起始指令位置和终止指令位置;获取所述第一变量对应的第二位置,所述第二位置表征在所述指令组中最后出现的位置;基于所述生命周期参数以及所述第一变量对应的第二位置,获得所述第一变量对应的第一位置。其中,所述基于所述生命周期参数以及所述第一变量对应的第二位置,获得所述第一变量对应的第一位置包括:基于所述生命周期参数,确定所述第一变量对应的第二位置所属的第一指令集;基于所述第一指令集的指令类型,确定所述第一变量对应的第一位置。其中,所述基于所述第一指令集的指令类型,确定所述第一变量对应的第一位置包括:若所述第一指令集的指令类型为第一类型,将所述第二位置确定为所述第一位置,所述第一类型表征所述第一变量在该第一指令集中被调用的次数为1;若所述第一指令集的指令类型为第二类型,将所述第一指令集对应的终止指令位置确定为所述第一位置,所述第二类型表征所述第一变量在该第一指令集中被调用的次数大于1。其中,还包括:基于待执行的源程序指令,得到所述指令组。其中,所述在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组包括:在第一指令集与第二指令集之间,插入清空所述第一变量占用的内存空间的清空指令;其中,所述第一指令集为所述第一变量对应的第二位置所属的指令集,所述第二指令集为所述第一指令集的下一指令集,所述第二位置表征所述第一变量在所述指令组中最后出现的位置。一种内存空间回收装置,包括:获取模块,用于获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;插入模块,用于在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行模块,用于执行更新后的指令组。其中,所述指令组包括至少一个指令集,一个指令集包括一个或多个指令,所述获取模块包括:第一获取单元,用于获取所述指令组对应的生命周期参数,其中,所述生命周期参数包括所述至少一个指令集分别对应的起始指令位置和终止指令位置;第二获取单元,用于获取所述第一变量对应的第二位置,所述第二位置表征在所述指令组中最后出现的位置;第三获取单元,用于基于所述生命周期参数以及所述第一变量对应的第二位置,获得所述第一变量对应的第一位置。一种电子设备,包括:存储器,用于存储程序;处理器,用于执行所述程序,所述程序具体用于:获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上述任一所述的内存空间回收方法包含的各个步骤。经由上述的技术方案可知,与现有技术相比,本专利技术公开了一种内存空间回收方法,获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。第一变量为待执行的指令组中任一变量,可选的,更新后的指令组中在每个变量的最后使用位置均插入有相应的清空指令。使得指令组使用完毕第一变量后,就会清空第一变量占用的内存空间,即不会影响指令组的执行,也会及时清空内存空间中的第一变量,从而不会出现内存空间不足的情况。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的内存空间回收方法的一种实现方式的流程图;图2为本专利技术实施例提供的获取待执行的指令组包含的第一变量对应的第一位置的一种实现方式的流程图;图3为本专利技术实施例提供的内存空间回收装置的实现方式的结构图;图4为本专利技术实施例提供的电子设备的一种实现方式的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。目前程序代码在执行过程中,程序代码中的变量会一直占用内存空间。例如,利用java语言编写的大数据项目的程序代码包含多个多变量,在运行该程序代码时,程序代码中包含的很多变量,会占用大量内存空间。下面举一helloworld例子进行说明,假设程序代码如下所示:上述程序代码在执行过程中,变量s在程序代码执行到位置2时,程序代码的后续程序在执行过程中不会使用到变量s,但是变量s仍然占用内存空间。综上,程序代码中部分变量在程序代码执行到一定阶段时,程序代码的后续程序在执行过程中不会使用到这些变量,但是这些变量仍然占用内存空间,这在某些对内存空间要求很严格场景,例如,java作为后台常驻服务的场景,将导致内存空间不足。为了解决上述问题,本专利技术实施例提供了一种内存空间回收方法,如图1所示,为本专利技术实施例提供的内存空间回收方法的一种实现方式的流程图,该方法包括:步骤S101:获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置。第一变量为待执行的指令组中任一变量。本专利技术实施例中的指令组可以包括一条或多条指令。在一可选实施例中,指令组可以包括字节码;字节码(Byte-code)是一种包含执行程序,由一序列op代码/数据对组成的二进制文件,是一种中间码。若指令组包括字节码,则可以基于待执行的源程序指令得到该指令组。例如,若程序代码为Java源程序指令(.java文件),则Java源程序指令在经过Java编译器编译之后会被转换成本文档来自技高网...

【技术保护点】
1.一种内存空间回收方法,其特征在于,包括:获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。

【技术特征摘要】
1.一种内存空间回收方法,其特征在于,包括:获取待执行的指令组包含的第一变量对应的第一位置,其中,所述第一位置表征在执行所述指令组时最后使用所述第一变量的位置;在所述第一位置后插入清空所述第一变量占用的内存空间的清空指令,得到更新后的指令组;执行更新后的指令组。2.根据权利要求1所述内存空间回收方法,其特征在于,所述指令组包括至少一个指令集,一个指令集包括一个或多个指令,所述获取待执行的指令组包含的第一变量对应的第一位置包括:获取所述指令组对应的生命周期参数,其中,所述生命周期参数包括所述至少一个指令集分别对应的起始指令位置和终止指令位置;获取所述第一变量对应的第二位置,所述第二位置表征在所述指令组中最后出现的位置;基于所述生命周期参数以及所述第一变量对应的第二位置,获得所述第一变量对应的第一位置。3.根据权利要求2所述内存空间回收方法,其特征在于,所述基于所述生命周期参数以及所述第一变量对应的第二位置,获得所述第一变量对应的第一位置包括:基于所述生命周期参数,确定所述第一变量对应的第二位置所属的第一指令集;基于所述第一指令集的指令类型,确定所述第一变量对应的第一位置。4.根据权利要求3所述内存空间回收方法,其特征在于,所述基于所述第一指令集的指令类型,确定所述第一变量对应的第一位置包括:若所述第一指令集的指令类型为第一类型,将所述第二位置确定为所述第一位置,所述第一类型表征所述第一变量在该第一指令集中被调用的次数为1;若所述第一指令集的指令类型为第二类型,将所述第一指令集对应的终止指令位置确定为所述第一位置,所述第二类型表征所述第一变量在该第一指令集中被调用的次数大于1。5.根据权利要求1至4任一所述内存空间回收方法,其特征在于,还包括:基于待执行的源程序指令,得到所述指令组。6.根据权利要求2所述内存空间回收方法,其特征在于,所述...

【专利技术属性】
技术研发人员:于连宇王晓勇
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京,11

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

1