一种内存回收方法、终端、存储介质及程序产品与流程
- 国知局
- 2025-01-10 13:11:08
本技术涉及数据处理,尤其地涉及一种内存回收方法、终端、存储介质及程序产品。
背景技术:
1、手机、平板电脑等终端中安装的应用程序运行时,终端内部署的操作系统会为应用程序创建进程,并为进程分配虚拟内存区域(virtual memory area,vma),上述vma与物理内存的内存页之间存在映射关系,这样,各个进程可以通过其对应的vma间接访问内存页,也就是,进程可以在物理内存的内存页中运行。
2、其中,物理内存的容量是有限的,在内存紧张的情况下,若存在新的内存需求,操作系统需要进行内存回收,即,解除内存页与vma之间的映射关系。这样,解除映射关系的内存页被回收,可以用于供给上述内存需求。
3、然而,一些情况下,一个内存页会与较多的vma存在映射关系,回收这样的内存页时,需要解除内存页与较多vma之间的映射关系,需要花费的时间较长,导致内存回收的效率较低。
技术实现思路
1、有鉴于此,本技术提供一种内存回收方法、终端、存储介质及程序产品,以提高内存回收效率。
2、第一方面,本技术实施例提供了一种内存回收方法,所述方法包括:
3、从非活跃的第一内存页链表的起始内存页开始,基于目标回收数量,逐个确定回收成本表征值小于等于第一回收成本限制值的第一内存页,其中,所述第一内存页链表中包括的内存页为:活跃的第二内存页链表记录的内存页中淘汰的、回收成本表征值小于等于第二回收成本限制值的内存页,所述第一内存页的最大数量为所述目标回收数量,回收成本表征值:基于与内存页存在映射关系的虚拟内存区域vma的数量确定;
4、确定与每一第一内存页存在映射关系的第一vma;
5、确定分配了各第一vma的第一进程对应的第一映射页表;
6、解除各第一映射页表中存储的第一内存页与第一vma之间的映射关系,并从所述第一内存页链表中删除各第一内存页。
7、由以上可见,应用本技术实施例提供的方案进行内存回收时,从非活跃的第一内存页链表的起始内存页开始,逐个确定回收成本表征值小于等于第一回收成本限制值的第一内存页,且第一内存页的最大数量为目标回收数量,从而,可以确定与每一第一内存页存在映射关系的第一vma,并确定分配了各第一vma的第一进程对应的第一映射页表,进而可以解除各第一映射页表中存储的第一内存页与第一vma之间的映射关系,并从第一内存页链表中删除各第一内存页。这样,第一内存页被成功回收,可以用于供给新的内存需求。
8、其中,回收成本表征值用于描述回收内存页所花费的成本,回收成本表征值小于第一回收成本限制值的内存页,也就是回收成本较小的内存页。由此可见,本技术实施例提供的方案在确定本次待回收的第一内存页时,考虑的是内存页的回收成本,进行内存回收时,可以优先选择回收成本较小的内存页进行回收,整体上有利于使得最终回收的内存页都是回收成本较小的内存页,降低了内存回收时所花费的计算资源成本和时间成本,提高了内存回收的效率,加快了内存的供给速度。
9、本技术的一个实施例中,所述方法还包括:
10、若已确定出的第一内存页的数量小于所述目标回收数量,则增大所述第一回收成本限制值;
11、返回所述从非活跃的第一内存页链表的起始内存页开始,基于目标回收数量,逐个确定回收成本表征值小于等于第一回收成本限制值的第一内存页的步骤。
12、第一内存页是根据内存页的回收成本表征值与第一回收成本限制值确定的,在已确定出的第一内存页的数量小于目标回收数量的情况下,即已回收的内存页的数量没有达到预期的回收数量,表明第一内存页链表中的部分内存页的回收成本较高,此时,增大第一回收成本限制值,可以放宽确定第一内存页时的判定条件,这样再返回执行内存回收流程时,有利于基于增大后的第一回收成本限制值确定出更多的第一内存页,从而有利于确定出数量满足目标回收数量的第一内存页,保证了本次内存回收能够满足内存回收需求。
13、本技术的一个实施例中,所述增大所述第一回收成本限制值,包括:
14、为所述第一回收成本限制值增加第一步长,得到增大后的第一回收成本限制值。
15、这样,在已确定的第一内存页的数量未达到目标回收数量时,可以按照第一步长,逐步增大第一回收成本限制值,有利于使得根据增大后的第一回收成本限制值确定出更多的第一内存页。
16、本技术的一个实施例中,所述第一步长为:预设的步长值。
17、这样,第一步长是预先设定的,无需执行确定步长的步骤,可以按照预设的步长值便捷的增大第一回收成本限制值,提高了方案的执行效率。
18、本技术的一个实施例中,所述第一步长为:根据已确定出的第一内存页的数量和所述目标回收数量确定的步长值。
19、可以看出,已确定出的第一内存页的数量和目标回收数量能够反映内存页的回收成本表征值和第一回收成本限制值之间的差距,进而能够反映按照当前第一回收成本限制值进行内存回收的回收难度,按照上述回收难度可以准确、合理的确定用于增大第一回收成本限制值的第一步长。
20、本技术的一个实施例中,所述回收成本表征值为:与内存页存在映射关系的vma的数量。
21、与内存页存在映射关系的vma的数量可以较为便捷、准确的反映内存页的回收成本,提高了所得回收成本表征值的准确度。
22、本技术的一个实施例中,所述回收成本表征值为:基于与内存页存在映射关系的vma的数量确定的回收时长预测值。
23、这样,可以从内存页的回收时长这一角度,直观、准确的反映内存页的回收成本。
24、本技术的一个实施例中,所述方法还包括:
25、判断内存回收需求是否为紧急内存回收需求;
26、若为否,则执行所述从非活跃的第一内存页链表的起始内存页开始,基于目标回收数量,逐个确定回收成本表征值小于等于第一回收成本限制值的第一内存页的步骤。
27、若内存回收需求不为紧急内存回收需求,表示内存剩余容量还较为充足,本次内存需求不紧迫,回收压力较小,此时,可以采用本技术实施例提供的方案以提高内存页的回收效率,提高了方案的合理性。
28、本技术的一个实施例中,所述判断内存回收需求是否为紧急内存回收需求,包括:
29、基于以下条件中的至少一种,判断内存回收需求是否为紧急内存回收需求:
30、内存回收需求的紧急度大于预设紧急度;
31、剩余内存容量小于预设容量阈值;
32、所述第二内存页链表与所述第一内存页链表之间的长度比例大于预设比例阈值。
33、这样,可以采用多种条件,从多个维度判断内存回收需求是否为紧急内存回收需求,提高了判断的准确度和合理性。
34、本技术的一个实施例中,所述方法还包括:
35、判断非活跃的第一内存页链表中包括的内存页的数量与目标回收数量之差是否大于预设数量;
36、若为是,执行所述从非活跃的第一内存页链表的起始内存页开始,基于目标回收数量,逐个确定回收成本表征值小于等于第一回收成本限制值的第一内存页的步骤。
37、内存页的数量与目标回收数量之差较大时,第一内存页链表中的小部分内存页要被回收,该情况下,可以采用本技术实施例提供的方案,从中挑选回收成本较低的内存页进行回收,以提高内存页的回收效率,提高了方案的合理性。
38、第二方面,本技术实施例提供了一种终端,包括:
39、一个或多个处理器和存储器;
40、所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述终端执行第一方面所述的方法。
41、第三方面,本技术实施例提供了一种计算机可读存储介质,包括计算机程序,当所述计算机程序在终端上运行时,使得所述终端执行第一方面所述的方法。
42、第四方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在终端上执行时,使得终端执行第一方面所述的方法。
43、第五方面,本技术实施例提供了一种芯片系统,所述芯片系统应用于终端,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述终端将数据输入芯片系统,并执行第一方面所述的方法进行内存回收。
44、上述第二方面至第五方面中各实施例所提供方案的有益效果可参见上述第一方面中各实施例所提供方案的有益效果。
本文地址:https://www.jishuxx.com/zhuanli/20250110/351482.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表