分配内存的方法及电子设备技术

技术编号:36169675 阅读:13 留言:0更新日期:2022-12-31 20:20
本申请提供一种分配内存的方法及电子设备,涉及终端技术领域,其中,该方法包括:获取第一应用程序的第一内存分配请求,第一内存分配请求用于请求从堆内存中分配与第一应用程序的第一变量对应的内存空间,从堆内存向第一应用程序分配第一用户内存和第一影子内存,第一影子内存与第一用户内存对应,第一影子内存对应设置有第一类别标识,第一类别标识用于指示第一用户内存为未设置隔离内存的第一类堆内存,其中,第一类堆内存与第二类堆内存不同,第二类堆内存包括的用户内存的至少一端设置有隔离内存,且第二类堆内存包括的用户内存和至少一端设置的隔离内存存在对应的影子内存。本申请提供的技术方案能够减少内存消耗,降低电子设备的成本。电子设备的成本。电子设备的成本。

【技术实现步骤摘要】
分配内存的方法及电子设备


[0001]本申请涉及终端
,尤其涉及一种分配方法及电子设备。

技术介绍

[0002]随着终端技术的发展,各种电子设备都得到了长足的发展和广泛的应用。电子设备中可以包括应用程序和多种设备资源,电子设备可以向该应用程序分配这些设备资源,以使得该应用程序能够运行。其中,堆内存是一种重要的设备资源,电子设备可以基于该应用程序的相关请求,向该应用程序分配对内存并对所分配的堆内存进行管理。
[0003]现有技术中,当电子设备接收到应用程序针对某个变量的内存分配请求时,可以从堆内存中获取用户内存,并在该用户内存的两端设置隔离内存(red zone),还设置与该用户内存以及两端隔离内存对应的影子内存,该影子内存可以用于存储该用户内存和两个隔离内存的状态信息,通过上述方式,可以使得后续可以基于该影子内存对该用户内存进行内存错误检测,但同时也会导致对电子设备的内存消耗过高,提高电子设备的成本。

技术实现思路

[0004]有鉴于此,本申请提供一种分配内存的方法及电子设备,能够减少对电子设备的内存消耗,降低电子本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分配内存的方法,其特征在于,包括:获取第一应用程序的第一内存分配请求,所述第一内存分配请求用于请求从堆内存中分配与所述第一应用程序的第一变量对应的内存空间;从堆内存向所述第一应用程序分配第一用户内存和第一影子内存,所述第一影子内存与所述第一用户内存对应,所述第一影子内存对应设置有第一类别标识,所述第一类别标识用于指示所述第一用户内存为未设置隔离内存的第一类堆内存;其中,所述第一类堆内存与第二类堆内存不同,所述第二类堆内存包括的用户内存的至少一端设置有隔离内存,且所述第二类堆内存包括的用户内存和所述至少一端设置的隔离内存存在对应的影子内存。2.根据权利要求1所述的方法,其特征在于,在所述从堆内存向所述第一应用程序分配第一用户内存和第一影子内存之前,所述方法还包括:判断是否针对所述第一变量分配隔离内存;所述从堆内存向所述第一应用程序分配第一用户内存和第一影子内存,包括:若确定不向所述第一变量分配隔离内存,则从所述堆内存向所述第一应用程序分配所述第一用户内存和所述第一影子内存。3.根据权利要求2所述的方法,其特征在于,所述判断是否针对所述第一变量分配隔离内存,包括:通过随机分配模型判断是否向所述第一变量分配隔离内存。4.根据权利要求3所述的方法,其特征在于,所述随机分配模型向所述第一变量分配第一类堆内存的概率为80%,向所述第一变量所述第二类堆内存的概率为20%。5.根据权利要求2

4任一所述的方法,其特征在于,所述方法还包括:将所述第一应用程序运行第一预设次数,所述第一预设次数与向所述第一应用程序分配所述第一类堆内存的概率成正相关;在所述第一应用程序运行所述第一预设次数的过程中,基于所述第二类堆内存检测所述第一应用程序发生的内存地址越界错误。6.根据权利要求2

5任一所述的方法,其特征在于,所述方法还包括:若确定向所述第一变量分配隔离内存,则从所述堆内存向所述第一变量分配第二用户内存,在所述第二用户内存的至少一端的设置第一隔离内存,确定第二影子内存,所述第二用户内存为所述第二类堆内存,所述第二影子内存与所述第二用户内存以及所述至少一端设置的所述第一隔离内存对应。7.根据权利要求1

6任一所述的方法,其特征在于,所述方法还包括:基于所述第一用户内存的第一分配起始地址,确定所述第一用户内存的第一用户起始地址;向所述第一应用程序返回所述第一用户起始地址。8.根据权利要求7所述的方法,其特征在于,所述基于所述第一用户内存的第一分配起始地址,确定所述第一用户内存的第一用户起始地址,包括:将所述第一分配起始地址确定为所述第一用户起始地址;或,获取所述第一用户内存的地址范围中最接近所述第一分配起始地址的第一内存地址,并将所述第一内存地址确定为所述第一用户起始地址,所述第一内存地址为2的N次幂,N为
正整数。9.根据权利要求7或8所述的方法,其特征在于,所述第一类别标识包括第一标识符,所述方法还包括:若所述第一用户起始地址和所述第一分配起始地址不同,则将所述第一影子内存中与所述第一用户起始地址对应的字节之前的L个字节设置为所述第一标识符,L为大于或等于1的正整数。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:当在所述第一影子内存中检测到所述第一标识符时,则基于所述第一...

【专利技术属性】
技术研发人员:孔峥嵘张亮马耀辉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1