内存分配方法、电子设备及存储介质与流程

文档序号:35041939发布日期:2023-08-05 23:38阅读:62来源:国知局
内存分配方法、电子设备及存储介质与流程

本技术涉及终端领域,具体涉及一种内存分配方法、电子设备及存储介质。


背景技术:

1、随着应用程序功能越来越强大,用户在电子设备上使用的应用程序越来越多。应用程序的进程在执行一些功能时,需要使用内存,此时应用程序的进程会向电子设备上的内存管理工具发送内存申请请求。电子设备上的内存管理工具会为进程分配内存。

2、当前,电子设备在进行内存分配时,电子设备上的内存管理工具会按照进程发起内存申请请求的时间先后顺序给进程分配内存,以防止进程得不到内存而导致该进程无法运行。

3、然而,这种分配方式会导致与用户交互相关程度高的进程获得了申请时延高的内存;这会在电子设备上,出现应用响应延迟、应用卡顿等现象,从而会影响用户的使用体验。


技术实现思路

1、本技术实施例提供一种内存分配方法、电子设备及存储介质,可以为当前进程分配内存申请时延与该进程的时延需求相匹配的内存类型,从而使得要求低时延的进程能够分配到内存申请时延也低的内存类型,减少电子设备上出现的要求低时延的进程因内存分配时延高而导致的应用响应延迟、应用卡顿等现象,可以提升用户的使用体验。为达到上述目的,本技术的实施例采用如下技术方案:

2、第一方面,提供了一种内存分配方法,该方法可以应用于电子设备。该电子设备可以是,如,手机、平板电脑、笔记本等等可以使用应用程序的电子设备。该电子设备可以包括多种内存类型的内存和多个进程;其中,多种内存类型对应的内存申请时延不同。在该方法中,电子设备接收目标进程的内存申请请求,目标进程是多个进程中的任一进程。之后,电子设备基于目标进程的内存申请请求得到目标内存类型。接下来,电子设备可以基于目标内存类型为目标进程分配内存。其中,该目标内存类型是上述多种内存类型中,对应的内存申请时延与目标进程匹配的内存类型。对于一些允许使用高申请时延的进程匹配内存时延高的内存,对于一些要求低时延的进程匹配内存申请时延低的内存类型。

3、在第一方面中,电子设备通过为进程分配该进程匹配的内存类型的内存。可以为该进程分配内存申请时延与该进程的时延需求相匹配的内存类型的内存,从而使得要求低时延的进程能够分配到内存申请时延也低的内存类型,可以减少电子设备上出现的短时延要求的进程因内存分配时延高而导致的应用响应延迟、应用卡顿等现象,可以提升用户的使用体验。

4、在第一方面的一种可能的设计中,上述电子设备基于目标进程的内存申请请求得到目标内存类型,可以包括:电子设备基于目标进程的内存申请请求得到目标进程的目标优先级,并基于目标优先级得到目标内存类型;其中,进程对电子设备的重要程度和进程的优先级正相关;和/或,进程与用户交互的相关性和进程的优先级正相关;或者,电子设备基于目标进程的内存申请请求得到目标进程的进程标识,并基于进程标识得到目标内存类型;目标内存类型对应的内存申请时延与进程标识相匹配;或者,电子设备基于目标进程的内存申请请求得到目标进程的进程类型,并基于目标进程的进程类型得到目标内存类型;目标内存类型对应的内存申请时延与目标进程的进程类型相匹配。这样,电子设备就可以通过进程标识、进程的优先级或者进程内存申请请求,得到该进程匹配的目标内存类型

5、在第一方面的一种可能的设计中,上述电子设备基于目标进程的内存申请请求得到目标进程的目标优先级,可以包括:电子设备基于内存申请请求得到目标进程的进程标识,并基于进程标识调用函数库获取目标优先级;或者,电子设备解析内存申请请求中的预设字段得到目标优先级;或者,电子设备基于内存申请请求得到目标进程的进程类型,并基于目标进程的进程类型获取目标优先级。

6、在第一方面的一种可能的设计中,上述优先级可以包括进程调整adj等级。上述电子设备基于目标进程的进程类型获取目标优先级,可以包括:电子设备基于进程类型与adj等级的对应关系,确定目标进程的进程类型对应的目标adj等级。其中,进程类型与用户交互的相关性和进程类型的adj等级的数值负相关,和/或,进程类型对电子设备运行的重要程度和进程类型的adj等级的数值负相关。

7、在第一方面的一种可能的设计中,上述电子设备基于目标优先级得到目标内存类型,可以包括:电子设备根据优先级与内存类型的对应关系,确定目标优先级匹配的目标内存类型;其中,内存类型对应的优先级与内存类型对应的申请时延正相关。或者,电子设备基于目标优先级得到目标优先级对应的历史分配内存类型,并根据历史分配内存类型确定目标内存类型。

8、在第一方面的一种可能的设计中,该方法还可以包括:电子设备确定多种内存类型的内存申请时延,基于多种内存类型的内存申请时延调整优先级与内存类型的对应关系。在这种设计中,电子设备可以获取电子设备上不同类型内存的内存申请时延的变动,之后并基于内存申请时延的变动调整,优先级与内存类型的对应关系。这样,即使电子设备上的内存的申请时延发生了变化,电子设备也可以给进程分配内存申请时延与该进程匹配的内存。这样,可以进一步地减少电子设备上出现的短时延要求的进程因内存分配时延高而导致的应用响应延迟、应用卡顿等现象,可以提升用户的使用体验。

9、在第一方面的一种可能的设计中,上述电子设备基于进程标识得到目标内存类型,可以包括:电子设备基于进程标识得到进程标识对应的内存申请时延;电子设备确定多种内存类型中,对应的内存申请时延与进程标识对应的内存申请时延差值最小的内存类型为目标内存类型。

10、在第一方面的一种可能的设计中,上述电子设备基于目标进程的进程类型得到目标内存类型,可以包括:电子设备基于目标进程的进程类型得到目标进程的进程类型对应的内存申请时延。接下来,电子设备确定多种内存类型中,对应的申请时延与目标进程的进程类型对应的内存申请时延差值最小的内存类型为目标内存类型。

11、在第一方面的一种可能的设计中,本方法还可以包括:电子设备获取多种内存类型对应的内存申请时延范围。以及,上述电子设备基于进程标识得到目标内存类型,可以包括:电子设备基于进程标识得到进程标识对应的内存申请时延。之后,电子设备确定进程标识对应的内存申请时延在内存申请时延范围中的内存类型为目标内存类型;或者,上述电子设备基于目标进程的进程类型得到目标内存类型,可以包括:基于目标进程的进程类型得到目标进程对应的内存申请时延;接下来,电子设备确定目标进程对应的内存申请时延在内存申请时延范围中的内存类型为目标内存类型。

12、在第一方面的一种可能的设计中,按照对应的内存申请时延从低到高的顺序,上述多种内存类型可以包括:处理器核空闲内存、全局空闲内存、文件页释放内存、匿名页压缩释放内存、匿名页转移释放内存、分配器释放内存和进程销毁释放内存中的一种或多种。

13、在第一方面的一种可能的设计中,上述文件页释放内存,可以包括:可扩展只读文件系统文件页释放内存,内存友好文件系统文件页释放内存,第四代扩展文件系统文件页释放内存,可扩展文件分配表文件页释放内存。上述匿名页压缩释放内存,可以包括:第一匿名页压缩释放内存和第二匿名页压缩释放内存。其中,第一匿名页压缩释放内存的活跃度高于第二匿名页压缩释放内存的活跃度;活跃度可以理解为使用该匿名页的进程的活跃程度。上述分配器释放内存,可以包括:第一分配器释放内存和第二分配器释放内存。第一分配器释放内存对电子设备资源的占用程度低于第二分配器释放内存对电子设备资源的占用程度;其中,上述对电子设备资源的占用程度可以包括对电子设备上的输入输出接口的占用程度。

14、在第一方面的一种可能的设计中,本技术实施例提供的方法还可以包括:电子设备基于内存申请请求得到目标进程的内存申请量。以及,电子设备基于目标内存类型为目标进程分配内存,可以包括:电子设备基于目标内存类型,执行第一循环搜索,以得到满足分配条件的内存。之后,电子设备为目标进程分配满足分配条件的内存。其中,第一循环搜索可以包括:电子设备按照内存申请时延从低到高的顺序,从目标内存类型和内存申请时延比目标内存类型高的内存中循环搜索,直至搜索得到满足分配条件的内存;满足分配条件的内存的可分配内存量大于或等于内存申请量;可分配内存量是通过内存查询工具查询得到的。这样,即使目标内存类型的可分配内存量不能满足目标进程的内存申请量,电子设备也可以为进程分配内存,可以防止进程饥饿的发生。同时,为该进程分配的内存也不会影响到对电子设备上其他进程的内存分配。

15、在第一方面的一种可能的设计中,本技术实施例提供的方法还可以包括:若第一循环搜索满足循环切换条件,则电子设备执行第二循环搜索。其中,上述循环切换条件包括:第一循环搜索的搜索次数大于或等于预设次数,和/或第一循环搜索的搜索时间大于或等于预设时间。以及。第二循环搜索包括:按照内存申请时延从低到高的顺序,从多种内存类型的内存中循环搜索,直至搜索得到满足分配条件的内存。这样,即使目标内存类型的可分配内存量不能满足目标进程的内存申请量,电子设备也可以为进程分配内存,可以减少进程饥饿的发生。

16、在第一方面的一种可能的设计中,上述电子设备基于目标内存类型,执行第一循环搜索,以得到满足分配条件的内存可以包括:若目标内存类型是匿名页压缩释放内存,或者是分配器释放内存,或者是匿名页转移释放内存,则电子设备基于目标内存类型执行第一循环搜索,以得到满足分配条件的内存。若目标内存类型是文件页释放内存,或者是全局空闲内存,则电子设备基于目标内存类型执行第三循环搜索,以得到满足分配条件的内存。其中,第三循环搜索可以包括:电子设备按照内存申请时延从高到低的顺序,从目标内存类型和内存申请时延比目标内存类型低的内存中循环搜索,直至搜索得到满足分配条件的内存。在这种设计中,电子设备可以根据目标内存类型的申请时延采用不同的分配方式。这样,对于一些高时延需要的进程,在满足这些进程时延需要的情况下,可以减少这些进程发送进程饥饿的情况。以及,对于一些时延要求低的进程,在不影响其他进程的内存申请的情况下,可以减少这些进程发生进程饥饿的情况。

17、第二方面,提供了一种电子设备,该电子设备具有实现上述第一方面及第一方面任一种可能的设计所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,内存分配模块等等。

18、第三方面,提供了一种电子设备,该电子设备包括存储器、一个或多个处理器,存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行上述第一方面及第一方面的任一种可能的设计所述的方法。

19、第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在电子设备上运行时,使得电子设备可以执行上述第一方面以及第一方面任一种可能的设计所述的方法。

20、第五方面,提供一种包括指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面以及第一方面的任一种可能的设计所述的方法。

21、其中,第二方面至第五方面中任一种设计方式所带来的技术效果可以参见上述第一方面不同设计所带来的技术效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1