内存分配器确定方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36289999 阅读:58 留言:0更新日期:2023-01-13 10:02
本申请公开了一种内存分配器确定方法、装置、电子设备及存储介质,能够解决电子设备使用内存分配器的灵活性较低的问题。该方法包括:获取在电子设备中运行的第一进程的信息;根据该第一进程的信息,从电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,该目标内存分配器用于管理第一进程的内存,目标内存分配器与第一进程相匹配。标内存分配器与第一进程相匹配。标内存分配器与第一进程相匹配。

【技术实现步骤摘要】
内存分配器确定方法、装置、电子设备及存储介质


[0001]本申请属于通信
,具体涉及一种内存分配器确定方法、装置、电子设备及存储介质。

技术介绍

[0002]目前,电子设备的操作系统(例如安卓(Android)系统)只能包含一种内存分配器(例如:内存分配器1),以负责电子设备的内存分配与管理,使得电子设备上运行的进程都使用内存分配器1。
[0003]然而,由于不同的内存分配器的机制存在差异,因此电子设备上运行的部分进程并不适合使用内存分配器1。例如:进程1使用内存分配器1时,内存占用较少、进程性能较差;但是由于进程1对应的应用程序为电子设备中的重要应用程序,对进程性能要求较高,内存占用要求较低,所以进程1并不适合使用内存分配器1;如此,电子设备使用内存分配器的灵活性较低。

技术实现思路

[0004]本申请实施例的目的是提供一种内存分配器确定方法、装置、电子设备及存储介质,能够解决电子设备使用内存分配器的灵活性较低的问题。
[0005]为了解决上述技术问题,本申请是这样实现的:
[0006]第一方面,本申请实施例提供了一种内存分配器确定方法,该内存分配器确定方法包括:获取在电子设备中运行的第一进程的信息;根据该第一进程的信息,从电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,该目标内存分配器用于管理第一进程的内存,目标内存分配器与第一进程相匹配。
[0007]第二方面,本申请实施例提供了一种内存分配器确定装置,该内存分配器确定装置包括:获取模块和确定模块。获取模块,用于获取在电子设备中运行的第一进程的信息。确定模块,用于根据获取模块获取的第一进程的信息,从电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,该目标内存分配器用于管理第一进程的内存,目标内存分配器与第一进程相匹配。
[0008]第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
[0009]第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
[0010]第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
[0011]第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介
质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
[0012]在本申请实施例中,电子设备可以获取在电子设备中运行的第一进程的信息;以根据第一进程的信息,从电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,目标内存分配器用于管理第一进程的内存,目标内存分配器与第一进程相匹配。由于电子设备可以获取在电子设备中运行的第一进程的信息,因此电子设备可以根据获取的第一进程的信息从兼容的至少两个内容分配器中确定与第一进程相匹配的目标内容分配器,即电子设备可以选择一个适合第一进程使用的内存分配器作为目标内存分配器,以管理该第一进程的内存,从而提高了电子设备使用内存分配器的灵活性。
附图说明
[0013]图1是本申请实施例提供的一种内存分配器确定方法的示意图;
[0014]图2是本申请实施例提供的一种内存分配器确定装置的结构示意图;
[0015]图3是本申请实施例提供的一种电子设备的硬件结构示意图之一;
[0016]图4是本申请实施例提供的一种电子设备的硬件结构示意图之二。
具体实施方式
[0017]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0018]本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
[0019]下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存分配器确定方法进行详细地说明。
[0020]本申请实施例中的内存分配器确定方法可以应用于电子设备使用内存分配器的场景。
[0021]目前,电子设备的操作系统(例如安卓(Android)系统)为了更好地管理用户进程的内存申请,可以通过内存分配器来管理用户态的内存申请,内存分配器代理了用户进程通过malloc函数、calloc函数、free函数等申请和释放内存函数,近年来电子设备使用的内存分配器主要是Jemalloc内存分配器或者Scudo内存分配器,也就是说,电子设备的操作系统只能包含一种内存分配器(例如:Jemalloc内存分配器),以负责电子设备的内存分配与管理,因此电子设备上运行的进程也都使用Jemalloc内存分配器进行处理。
[0022]然而,一方面,不同的内存分配器的实现机制存在较大差异,在性能以及内存占用上的表现也存在一定差异;另一方面,操作系统上运行的进程众多,众多进程使用内存的方式也不尽相同;所以在电子设备运行的众多进程中,一部分进程可能适合使用Jemalloc内
存分配器,另一部分可能更适合使用Scudo内存分配器。因此现有技术在内存分配器的选择上,无法做到兼顾所有进程都能使用更适合自己的分配器。本申请提供一种操作系统支持多内存分配器的方法,旨在为操作系统上运行的大部分进程都能使用更适合进程本身业务逻辑的内存分配器。
[0023]在本申请实施例提供的方案中,电子设备可以获取在电子设备中运行的第一进程的信息;以根据第一进程的信息,从电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,目标内存分配器用于管理第一进程的内存,目标内存分配器与第一进程相匹配。由于电子设备可以获取在电子设备中运行的第一进程的信息,因此电子设备可以根据获取的第一进程的信息从兼容的至少两个内容分配器中确定与第一进程相匹配的目标内容分配器,即电子设备可以选择一个适合第一进程使用的内存分配器作为目标内存分配器,以管理该第一进程的内存,从而提高了电子设备使用内存分配器的灵活性。
[0024]本申请实施例提供一种内存分配器确定方法,图1示出了本申请实施例提供的一种内存分配器确定方法的流程图,该方法可以应用于电子设备。如图1所示,本申请实施例提供的内存分配器确定方法可以包括下述的步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配器确定方法,其特征在于,所述方法包括:获取在电子设备中运行的第一进程的信息;根据所述第一进程的信息,从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,所述目标内存分配器用于管理所述第一进程的内存,所述目标内存分配器与所述第一进程相匹配。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程的信息,从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器,包括:根据所述第一进程的信息,调用第一接口,所述第一接口由内存分配相关的函数实现;通过所述第一接口,调用第二接口,所述第二接口由查找内存分配器的函数实现;通过所述第二接口,从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器。3.根据权利要求1或2所述的方法,其特征在于,所述从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器,包括:获取目标结果表,所述目标结果表用于指示进程与内存分配器的对应关系;在所述目标结果表中存在所述第一进程的信息的情况下,将所述目标结果表中与所述第一进程的信息对应的内存分配器,确定为所述目标内存分配器。4.根据权利要求1或2所述的方法,其特征在于,所述从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器,包括:在根据所述第一进程的信息,确定所述第一进程为非初次运行的情况下,获取所述第一进程的全局变量的数值,并将与所述第一进程的全局变量的数值对应的内存分配器,确定为所述目标内存分配器,一个全局变量的数值对应一个内存分配器。5.根据权利要求4所述的方法,其特征在于,所述获取所述第一进程的全局变量的数值之前,所述方法还包括:根据目标结果表,更新所述目标结果表中的每个进程对应的全局变量的数值,其中,不同的全局变量的数值对应不同的内存分配器,所述目标结果表用于指示进程与内存分配器的对应关系。6.根据权利要求1所述的方法,其特征在于,所述获取在电子设备中运行的第一进程的信息之前,所述方法还包括:在所述电子设备中不存在与所述第一进程相关的测试数据的情况下,通过所述至少两个内存分配器,对所述电子设备中的所述第一进程进行测试,分别得到所述第一进程使用每个内存分配器时的分值;将多个所述分值中的最大分值对应的内存分配器,确定为与所述第一进程对应的目标内存分配器;将所述第一进程与所述第一进程对应的目标内存分配器相关联,并添加到目标结果表。7.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程的信息,从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器之前,所述方法还包括:对原始编译条件进行修改,以得到目标编译条件;
其中,在所述原始编译条件下,所述电子设备支持一个内存分配器;在所述目标编译条件下,所述电子设备兼容所述至少两个内存分配器。8.根据权利要求2所述的方法,其特征在于,所述第一接口为内存分配接口,所述目标内存分配器用于为所述第一进程分配内存;或者,所述第一接口为内存释放接口,所述目标内存分配器用于释放所述第一进程的内存。9.一种内存分配器确定装置,其特征在于,所述内存分配器确定装置包括:获取模块和确定模块;所述获取模块,用于获取在电子设备中运行的第一进程的信息;所述确定模块,用于根据所述获取模块获取的所述第一进程的信息,从所述电子设备兼容的至少两个内存分配器中确定目标内存分配器;其中,所述目标内存分配器用于管理所述第...

【专利技术属性】
技术研发人员:祝志锋
申请(专利权)人:维沃移动通信有限公司
类型:发明
国别省市:

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

1