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

技术编号:37870097 阅读:29 留言:0更新日期:2023-06-15 20:59
本申请公开了一种内存回收方法、装置、电子设备及存储介质,该方法包括:响应于内存回收指令,确定待回收的已引用页面;若待回收的已引用页面是经过预查处理的页面,对待回收的已引用页面进行回收,预查处理是指在确定具有关联关系的多个关联页面中,存在与页表项具有映射关系的已引用关联页面时,删除已引用关联页面与页表项之间的映射关系。本申请通过预查处理提前对已引用关联页面与页表项之间的映射关系进行删除,以对经过预查处理的待回收的已引用页面直接进行回收,从而提高内存回收的效率,进而达到降低内存回收负载的效果。进而达到降低内存回收负载的效果。进而达到降低内存回收负载的效果。

【技术实现步骤摘要】
内存回收方法、装置、电子设备及存储介质


[0001]本申请涉及计算机内存管理
,更具体地,涉及一种内存回收方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]内存(又称主存)是电子设备的处理器能直接寻址的存储空间,在电子设备中的内存空间通常是有限的,为了保证电子设备的正常运行,需要有足够的内存可以使用,因此,电子设备需要在内存满足回收条件时,对内存中的页面进行回收。但是,采用现有的方法对内存中的页面进行回收的效率较低、负载大。

技术实现思路

[0003]有鉴于此,本申请提出了一种内存回收方法、装置、电子设备及计算机可读存储介质。
[0004]第一方面,本申请实施例提供了一种内存回收方法,方法包括:响应于内存回收指令,确定待回收的已引用页面,已引用页面是指与页表项具有映射关系的页面;若待回收的已引用页面是经过预查处理的页面,对待回收的已引用页面进行回收,预查处理是指在确定具有关联关系的多个关联页面中,存在与页表项具有映射关系的已引用关联页面时,删除已引用关联页面与页表项之间的映射关系。
[0005]第二方面,本申请实施例提供了一种内存回收装置,装置包括:确定模块,用于响应于内存回收指令,确定待回收的已引用页面,已引用页面是指与页表项具有映射关系的页面;回收模块,用于若待回收的已引用页面是经过预查处理的页面,对待回收页面进行回收,预查处理是指在确定具有关联关系的多个关联页面中,存在与页表项具有映射关系的已引用关联页面时,删除已引用关联页面与页表项之间的映射关系。
>[0006]第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,存储器耦接到处理器,存储器存储指令,当指令由处理器执行时处理器执行上述方法。
[0007]第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述方法。
[0008]本申请实施例提供的内存回收方法、装置、电子设备及计算机可读存储介质,通过预查处理,提前对已引用关联页面与页表项之间的映射关系进行删除,以在待回收的已引用页面是经过预查处理的页面时,直接对经过预查处理的待回收的已引用页面直接进行回收,而不再需要进行待回收的已引用页面与页表项之间的映射关系的删除操作,从而在对待回收的已引用页面进行回收时,省去了删除操作的内存消耗,有效提高了内存回收的效率,进而达到降低内存回收负载的效果。
附图说明
[0009]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0010]图1示出了本申请一实施例提供的内存回收方法的流程示意图;
[0011]图2示出了本申请另一实施例提供的内存回收方法的流程示意图;
[0012]图3示出了本申请又一实施例提供的内存回收方法的流程示意图;
[0013]图4示出了本申请的图3所示的步骤S330的一种实施方式的流程示意图;
[0014]图5示出了本申请实施例提供的内存回收装置的模块框图;
[0015]图6示出了本申请实施例用于执行根据本申请实施例的内存回收方法的电子设备的框图;
[0016]图7示出了本申请实施例的用于保存或者携带实现根据本申请实施例的内存回收方法的程序代码的存储单元。
具体实施方式
[0017]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0018]对于计算机的操作系统而言,内存可以被划分为多个内存页面,并可以以内存页面为单位对内存进行管理。因为系统内存本身的大小是有限的,所以在系统中进行内存回收是一个较为普遍的机制,而之所以要进行内存回收的主要原因有两个:系统需要为任何时刻突发到来的内存申请提供足够的内存空间,以便cache的使用和其他相关内存的使用不至于让系统的剩余内存长期处于不足状态。还有,当有大于空闲内存的申请到来的时候,也会触发内存回收。
[0019]目前,Linux内存回收机制是,在对页面进行回收的时候,需要通过反向映射技术扫描这个页面映射的所有页表项,并删除这个页面与所有页表项之间的映射关系。然而,如果出现需要对一个映射了大量的页表项的页面(例如该页面缓存了较大文件、应用程序等)进行回收时,内存回收所耗费时间也会增加,严重影响系统的内存回收性能和效率。
[0020]针对上述问题,专利技术人经过长期的研究发现,并提出了本申请实施例提供的内存回收方法、装置、电子设备及计算机可读存储介质,通过预查处理在确定具有关联关系的多个关联页面中,存在与页表项具有映射关系的已引用关联页面时,删除已引用关联页面与页表项之间的映射关系,从而在对待回收的已引用页面进行回收时,对经过预查处理的待回收的已引用页面直接进行回收,有效提高了内存回收的效率,进而达到降低内存回收负载的效果。其中,具体的内存回收方法在后续的实施例中进行详细的说明。
[0021]请参阅图1,图1示出了本申请一实施例提供的内存回收方法的流程示意图,下面将针对图1所示的流程进行详细的阐述,内存回收方法具体可以包括以下步骤方法:
[0022]步骤S110:响应于内存回收指令,确定待回收的已引用页面,已引用页面是指与页表项具有映射关系的页面。
[0023]在本实施例中,内存回收指令为触发系统进行内存回收的指令,可以有多种方式
生成触发系统对内存进行回收的指令。
[0024]作为一种实施方式,可以基于当前系统的内存大小生成触发内存回收的指令,在这种方式中,系统可以对当前的可用内存进行检测,当可用内存低于目标内存时,触发内存回收指令,确定待回收的已引用页面,其中,该目标内存也可以为系统正常运行时所需要的最低内存。示例性的,若目标内存的大小为50MB,检测到的系统可用内存大小为30MB,该可用内存就低于目标内存,此时触发内存回收指令。
[0025]可选地,系统对可用内存的大小进行检测可以是周期性的,例如每间隔30分钟或者1小时对可用内存的大小进行自动检测。也可以是系统中的特定应用程序启动时触发对可用内存的检测,可以理解的是,应用程序在运行过程中需要占用一定的内存,因此系统在检测到有应用程序启动时,会为应用程序分配一定大小的内存空间,但是若在当前可用内存大小无法支持该应用程序启动时需要的内存时,系统就需要进行内存回收,所以可以在检测到有特定的应用程序启动时触发对可用内存的检测,以便触发系统进行内存回收的指令。
[0026]作为另一种实施方式,内存回收指令也可以为用户通过操作控件手动触发的内存回收本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存回收方法,其特征在于,所述方法包括:响应于内存回收指令,确定待回收的已引用页面,所述已引用页面是指与页表项具有映射关系的页面;若所述待回收的已引用页面是经过预查处理的页面,对所述待回收的已引用页面进行回收,所述预查处理是指在确定具有关联关系的多个关联页面中,存在与所述页表项具有映射关系的已引用关联页面时,删除所述已引用关联页面与所述页表项之间的映射关系。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述待回收的已引用页面的页面标识;若所述待回收的已引用页面的页面标识为目标页面标识,确定所述待回收的已引用页面是经过预查处理的页面,所述待回收的已引用页面的目标页面标识是在对所述待回收的已引用页面进行所述预查处理时,对所述待回收的已引用页面配置的。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述待回收的已引用页面是未经过预查处理的页面,删除所述待回收的已引用页面与所述页表项之间的映射关系;对所述待回收的已引用页面进行回收。4.根据权利要求3所述的方法,其特征在于,所述若所述待回收的已引用页面是未经过预查处理的页面,删除所述待回收的已引用页面与所述页表项之间的映射关系,包括:获取对应所述待回收的已引用页面的多个目标关联页面以及所述页表项,所述多个目标关联页面包括所述待回收的已引用页面以及与所述待回收的已引用页面具有关联关系的页面;针对每个所述目标关联页面,若该目标关联页面与所述页表项具有映射关系,删除该目标关联页面与所述页表项之间的映射关系。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取每个所述目标关联页面的页表引用标识;若所述目标关联页...

【专利技术属性】
技术研发人员:胡展源
申请(专利权)人:广东明创软件科技有限公司
类型:发明
国别省市:

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

1