本技术涉及电子设备的内存管理领域,具体而言,涉及一种缓冲区管理方法、装置、存储介质及电子设备。
背景技术:
1、对于运行有众多应用的电子设备,内存的有效管理对设备的稳定运行和转发性能等多方面都将起着关键的作用。而随着设备承担的业务不断增加,为了便于对业务进行管理,依据各业务的重要程度,为各业务对应的应用配置有优先级,以确保高等级的应用能够优先运行。然而,目前的内存管理方式无法判断应用是否发生了内存泄漏。在此情况下,系统会持续为发生内存泄漏的应用分配缓存,从而进一步加剧了内存泄漏的情况。
技术实现思路
1、为了克服现有技术中的至少一个不足,本技术提供一种缓冲区管理方法、装置、存储介质及电子设备,具体包括:
2、第一方面,本技术提供一种缓冲区管理方法,所述方法包括:
3、对系统中每个分配有私有buffer池的应用进行检测,若当前被检测应用的私有buffer池达到使用水线,则获取当前被检测应用的私有buffer池最近一次释放buffer的时长;
4、若所述最近一次释放buffer的时长大于预设阈值,则将当前被检测应用标记为危险应用,否则确定当前被检测应用满足扩容条件。
5、结合第一方面的可选实施方式,所述方法还包括:
6、将当前被检测应用标记为危险应用后,所述当前被检测应用从其私有buffer池中申请buffer时,若检测到自身被标记为危险应用则不再分配buffer。
7、结合第一方面的可选实施方式,所述方法还包括:
8、将当前被检测应用标记为危险应用后,则降低所述当前被检测应用的优先级。
9、结合第一方面的可选实施方式,所述方法还包括:
10、确定所述当前被检测应用满足扩容条件后,则确定出所述当前被检测应用的私有buffer池的可扩充容量;
11、若全局buffer池中的剩余容量小于所述可扩充容量,则选取优先级低于所述当前被检测应用的目标应用;
12、从所述目标应用的私有buffer池中为所述当前被检测应用分配满足所述可扩充容量的缓冲区。
13、结合第一方面的可选实施方式,所述确定出所述当前被检测应用的私有buffer池的可扩充容量,包括:
14、获取所述当前被检测应用的私有buffer池的预设最大容量;
15、根据所述预设最大容量,确定所述可扩充容量,其中,所述可扩充容量与所述预设最大容量满足预设比例关系。
16、结合第一方面的可选实施方式,所述选取优先级低于所述当前被检测应用的目标应用,包括:
17、从系统中分配有私有buffer池的所有应用中确定出优先级低于所述当前被检测应用的至少一个候选应用;
18、根据所述可扩充容量,从所述至少一个候选应用中选取所述目标应用,其中,所述目标应用能够提供满足所述可扩充容量的buffer,并且,提供满足所述可扩充容量的buffer后,所述目标应用的私有buffer池中的剩余的buffer满足所述目标应用的最低要求。
19、结合第一方面的可选实施方式,所述方法还包括:
20、若当前被检测应用的私有buffer池未达到使用水线,则继续对系统中下一个分配有私有buffer池的应用进行检测,所述使用水线为预设的当前被检测应用的私有buffer池的总buffer数的使用上限。
21、第二方面,本技术还提供一种缓冲区管理装置,所述装置包括:
22、检测模块,用于对系统中每个分配有私有buffer池的应用进行检测,若当前被检测应用的私有buffer池达到使用水线,则获取当前被检测应用的私有buffer池最近一次释放buffer的时长;
23、识别模块,用于若所述最近一次释放buffer的时长大于预设阈值,则将当前被检测应用标记为危险应用,否则确定当前被检测应用满足扩容条件。
24、结合第二方面的可选实施方式,所述检测模块还用于:
25、将当前被检测应用标记为危险应用后,所述当前被检测应用从其私有buffer池中申请buffer时,若检测到自身被标记为危险应用则不再分配buffer。
26、结合第二方面的可选实施方式,所述检测模块还用于:
27、将当前被检测应用标记为危险应用后,则降低所述当前被检测应用的优先级。
28、结合第二方面的可选实施方式,所述检测模块还用于:
29、确定所述当前被检测应用满足扩容条件后,则确定出所述当前被检测应用的私有buffer池的可扩充容量;
30、若全局buffer池中的剩余容量小于所述可扩充容量,则选取优先级低于所述当前被检测应用的目标应用;
31、从所述目标应用的私有buffer池中为所述当前被检测应用分配满足所述可扩充容量的缓冲区。
32、结合第二方面的可选实施方式,所述检测模块还具体用于:
33、获取所述当前被检测应用的私有buffer池的预设最大容量;
34、根据所述预设最大容量,确定所述可扩充容量,其中,所述可扩充容量与所述预设最大容量满足预设比例关系。
35、结合第二方面的可选实施方式,所述检测模块还具体用于:
36、从系统中分配有私有buffer池的所有应用中确定出优先级低于所述当前被检测应用的至少一个候选应用;
37、根据所述可扩充容量,从所述至少一个候选应用中选取所述目标应用,其中,所述目标应用能够提供满足所述可扩充容量的buffer,并且,提供满足所述可扩充容量的buffer后,所述目标应用的私有buffer池中的剩余的buffer满足所述目标应用的最低要求。
38、结合第二方面的可选实施方式,所述检测模块还用于:
39、若当前被检测应用的私有buffer池未达到使用水线,则继续对系统中下一个分配有私有buffer池的应用进行检测,所述使用水线为预设的当前被检测应用的私有buffer池的总buffer数的使用上限。
40、第三方面,本技术提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的缓冲区管理方法。
41、第四方面,本技术提供一种电子设备,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述的缓冲区管理方法。
42、相对于现有技术而言,本技术具有以下有益效果:
43、本技术提供一种缓冲区管理方法、装置、存储介质及电子设备。其中,电子设备对系统中每个分配有私有buffer池的应用进行检测,若当前被检测应用的私有buffer池达到使用水线,则获取当前被检测应用的私有buffer池最近一次释放buffer的时长;若最近一次释放buffer的时长大于预设阈值,意味着当前被检测应用发生了内存泄漏,则将当前被检测应用标记为危险应用,否则确定当前被检测应用满足扩容条件。如此,只有检测到当前被检测应用未发生内存泄漏时,才对其私有buffer池进行扩容。