内存池的资源回收方法、装置、存储介质以及电子设备与流程

文档序号:38480774发布日期:2024-06-27 11:39阅读:21来源:国知局
内存池的资源回收方法、装置、存储介质以及电子设备与流程

本申请涉及计算机领域,尤其涉及一种内存池的资源回收方法、装置、存储介质以及电子设备。


背景技术:

1、现有技术中,对于内存中内存池资源的回收,通常是启动一个独立线程或者任务,由该独立线程或者任务每隔预定时长启动一次,检测内存池中资源占用是否超出阈值,如果超出阈值,则执行资源回收操作,回收部分内存池资源。

2、然而,启动独立的线程对内存池资源进行回收,会由于线程间交互,而降低系统稳定性。


技术实现思路

1、本申请提供了一种内存池的资源回收方法、装置、存储介质以及电子设备,以解决对内存池的资源进行回收时,系统稳定性低的技术问题。

2、第一方面,本申请提供了一种内存池的资源回收方法,包括:在向计算机系统申请内存时,确定上述内存池的当前内存大小与本次申请内存的申请内存大小,其中,上述当前内存大小为上述内存池已经申请的内存的总大小,上述申请内存大小为本次要申请的内存的大小;在上述当前内存大小与上述申请内存大小之和大于回收内存大小的情况下,从上述内存池中确定目标内存块并回收上述目标内存块,其中,上述回收内存大小为触发回收内存操作的阈值;在回收上述目标内存块后,向上述计算机系统申请上述申请内存大小的内存。

3、第二方面,本申请提供了一种内存池的资源回收装置,包括:第一确定模块,用于在向计算机系统申请内存时,确定上述内存池的当前内存大小与本次申请内存的申请内存大小,其中,上述当前内存大小为上述内存池已经申请的内存的总大小,上述申请内存大小为本次要申请的内存的大小;第二确定模块,用于在上述当前内存大小与上述申请内存大小之和大于回收内存大小的情况下,从上述内存池中确定目标内存块并回收上述目标内存块,其中,上述回收内存大小为触发回收内存操作的阈值;申请模块,用于在回收上述目标内存块后,向上述计算机系统申请上述申请内存大小的内存。

4、作为一种可选的示例,上述第二确定模块包括:确定单元,用于确定上述内存池中,每一种内存块的已申请个数与空闲内存块个数,其中,上述内存池中包括多种内存块,每一种内存块的内存块大小相同;将上述每一种内存块的空闲内存块个数与所有内存块的已申请个数的比值确定为每一种内存块的内存块空闲率;根据上述内存块空闲率确定上述目标内存块。

5、作为一种可选的示例,上述第二确定模块包括:映射单元,用于建立每一种数据块与对应的内存块空闲率的映射关系;将上述映射关系存储到映射关系表中;按照上述内存块空闲率,对上述映射关系表中的每一种数据块进行排序。

6、作为一种可选的示例,上述确定单元包括:第一确定子单元,用于确定映射关系表中第一数量的空闲内存块,其中,第一数量的空闲内存块为映射关系表中前一半空闲内存块;确定映射关系表中第二数量的空闲内存块,其中,在回收第二数量的空闲内存块后,当前内存大小与申请内存大小之和小于回收内存大小;将上述第一数量的空闲内存块与上述第二数量的空闲内存块中,数量较少的一方作为上述目标内存块。

7、作为一种可选的示例,上述确定单元包括:第二确定子单元,用于根据上述内存块空闲率从大到小的顺序,将每一种内存块作为当前组内存块,通过如下步骤确定当前组内存块的第一内存块,将每一种内存块的第一内存块确定为上述目标内存块:确定上述当前组内存块中第一数量的空闲内存块,其中,第一数量的空闲内存块为上述当前组内存块中一半空闲内存块;确定上述当前组内存块中第二数量的空闲内存块,其中,在回收当前组内存块中第二数量的空闲内存块后,当前内存大小与申请内存大小之和小于回收内存大小;将当前组内存块的空闲内存块中,目标数量的空闲内存块确定为上述第一内存块,其中,目标数量为第一数量与第二数量中的较小值。

8、作为一种可选的示例,上述第二数量=count((当前内存大小+申请内存大小-回收内存大小+当前组内存块中一个内存块的大小-1)/当前组内存块中一个内存块的大小)。

9、作为一种可选的示例,上述装置还包括:处理模块,用于在回收上述目标内存块之后,获取上述内存池的新的当前内存大小;在新的当前内存大小与上述申请内存大小之和大于上述回收内存大小的情况下,确定新的上述目标内存块,并回收新的上述目标内存块,直到新的当前内存大小与上述申请内存大小之和小于上述回收内存大小,或者确定新的上述目标内存块的次数达到跳出次数。

10、作为一种可选的示例,上述第二确定模块还包括:终止模块,用于在上述申请内存大小大于上述内存池的最大内存大小与回收内存大小之差的情况下,停止执行本次确定与回收上述目标内存块的操作。

11、第三方面,本申请提供了一种电子设备,包括:至少一个通信接口;与上述至少一个通信接口相连接的至少一个总线;与上述至少一个总线相连接的至少一个处理器;与上述至少一个总线相连接的至少一个存储器,其中,上述存储器存储有计算机程序,上述处理器被配置为执行上述计算机程序时实现上述任一项上述的内存池的资源回收方法。

12、第四方面,本申请还提供了一种计算机存储介质,存储有计算机可执行指令,上述计算机可执行指令用于执行本申请上述任一项上述的内存池的资源回收方法。

13、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方案,在向计算机系统申请内存时,确定上述内存池的当前内存大小与本次申请内存的申请内存大小,其中,上述当前内存大小为上述内存池已经申请的内存的总大小,上述申请内存大小为本次要申请的内存的大小;在上述当前内存大小与上述申请内存大小之和大于回收内存大小的情况下,从上述内存池中确定目标内存块并回收上述目标内存块,其中,上述回收内存大小为触发回收内存操作的阈值;在回收上述目标内存块后,向上述计算机系统申请上述申请内存大小的内存,从而对内存池的资源进行回收是在向计算机系统申请内存时进行的,与申请内存的任务合而为一,不会产生冲突,提高了系统稳定性。



技术特征:

1.一种内存池的资源回收方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述在所述当前内存大小与所述申请内存大小之和大于回收内存大小的情况下,从所述内存池中确定目标内存块并回收所述目标内存块包括:

3.根据权利要求2所述的方法,其特征在于,在根据所述内存块空闲率确定所述目标内存块之前,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,根据内存块空闲率确定目标内存块包括:

5.根据权利要求3所述的方法,其特征在于,根据内存块空闲率确定目标内存块包括:

6.根据权利要求5所述的方法,其特征在于,所述第二数量=count((当前内存大小+申请内存大小-回收内存大小+当前组内存块中一个内存块的大小-1)/当前组内存块中一个内存块的大小)。

7.根据权利要求1所述的方法,其特征在于,在回收所述目标内存块之后,所述方法还包括:

8.根据权利要求1所述的方法,其特征在于,在所述当前内存大小与所述申请内存大小之和大于回收内存大小的情况下,从所述内存池中确定目标内存块并回收所述目标内存块还包括:

9.一种内存池的资源回收装置,其特征在于,包括:

10.一种电子设备,其特征在于,包括:至少一个通信接口;与所述至少一个通信接口相连接的至少一个总线;与所述至少一个总线相连接的至少一个处理器;与所述至少一个总线相连接的至少一个存储器,其中,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任意一项中所述的内存池的资源回收方法。

11.一种计算机可读的存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行本申请上述权利要求1至7任一项所述的内存池的资源回收方法。


技术总结
本申请涉及一种内存池的资源回收方法、装置、存储介质以及电子设备。该方法包括:在向计算机系统申请内存时,确定内存池的当前内存大小与本次申请内存的申请内存大小,其中,当前内存大小为内存池已经申请的内存的总大小,申请内存大小为本次要申请的内存的大小;在当前内存大小与申请内存大小之和大于回收内存大小的情况下,从内存池中确定目标内存块并回收目标内存块,其中,回收内存大小为触发回收内存操作的阈值;在回收目标内存块后,向计算机系统申请申请内存大小的内存。本申请解决了对内存池的资源进行回收时,系统稳定性低的技术问题。

技术研发人员:李培昊
受保护的技术使用者:北京金山云网络技术有限公司
技术研发日:
技术公布日:2024/6/26
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1