【技术实现步骤摘要】
一种内存分配方法以及相关装置
[0001]本申请实施例涉及一种内存分配方法以及相关装置。
技术介绍
[0002]在计算机系统中,需要对内存资源进行统筹管理,从而为应用程序申请以及释放内存。当内存的申请以及释放的频率较高时,所需要消耗的时间也就越多,为了满足应用程序高效运行的需求,需要进一步提升内存分配的效率。
[0003]目前的内存分配方案中,当应用程序申请内存的时候,可以通过数据栈向应用程序分配内存单元,当数据栈中的内存单元不足时,还可以从内存池将内存单元分配到数据栈中,从而不断满足应用程序的需求。
[0004]然而,从内存池将内存单元分配到数据栈中的过程中,数据栈无法向应用程序分配内存单元,因此内存分配效率不高。
技术实现思路
[0005]本申请实施例提供了一种内存分配方法以及相关装置,用于提高内存分配的效率。
[0006]本申请实施例第一方面提供了一种内存分配方法:
[0007]数据栈是一种数据结构,可以用于存储数据,在内存分配的应用场景中,可以根据数据栈存储内存资源,从而向应用程序提供内存资源。将内存资源存储在两个不同的数据栈中,包括第一数据栈以及第二数据栈。对于第一数据栈,第一数据栈指示了目标应用程序可使用的内存资源,该内存资源会随着应用程序申请或者释放内存而发生变化。当上述第一数据栈指示的内存资源更新为第一内存资源,且第一内存资源等于第一阈值,则根据第二数据栈向目标应用程序提供内存资源,其中,第二数据栈指示了目标应用程序可使用的第二内存资源,并且第二内存资源 ...
【技术保护点】
【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:根据第一数据栈,向目标应用程序提供内存资源,其中,所述第一数据栈用于指示所述目标应用程序可使用的内存资源;基于所述目标应用程序可使用的内存资源为第一内存资源,所述第一内存资源等于第一阈值,根据第二数据栈向所述目标应用程序提供内存资源,其中,所述第二数据栈用于指示所述目标应用程序可使用的第二内存资源,所述第二内存资源大于所述第一阈值,所述第一数据栈与所述第二数据栈不同。2.根据权利要求1所述的方法,其特征在于,所述第一内存资源以及所述第二内存资源包括内存单元的数量,所述第一数据栈的长度以及所述第二数据栈的长度与所述内存单元的数量呈正相关,所述第一数据栈以及所述第二数据栈中的内存单元的大小相同。3.根据权利要求1或2所述的方法,其特征在于,所述根据第二数据栈向所述目标应用程序提供内存资源之前,所述方法还包括:获取所述第二数据栈指示的第三内存资源,以及所述第一数据栈指示的第四内存资源,所述第四内存资源更新后得到所述第一内存资源,所述第三内存资源更新后得到所述第二内存资源;基于所述第四内存资源小于或等于第二阈值且大于所述第一阈值,以及所述第三内存资源小于或等于第三阈值,为所述第二数据栈分配所述内存单元,以便将所述第三内存资源更新为所述第二内存资源,所述第二内存资源大于所述第三阈值。4.根据权利要求3所述的方法,其特征在于,所述根据第二数据栈向所述目标应用程序提供内存资源之后,所述方法还包括:获取所述第二数据栈指示的第五内存资源,所述第二内存资源更新后得到所述第五内存资源;基于所述第五内存资源小于或等于所述第三阈值且大于第四阈值,以及所述第一内存资源小于所述第二阈值,为所述第一数据栈分配所述内存单元。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取所述第二数据栈指示的第六内存资源,所述第五内存资源更新后得到所述第六内存资源;基于所述第六内存资源等于所述第四阈值,根据所述第一数据栈向所述目标应用程序提供内存资源。6.根据权利要求4或5所述的方法,其特征在于,所述为所述第一数据栈分配所述内存单元包括:调用硬件加速器为所述第一数据栈分配所述内存单元。7.根据权利要求3至6中任一项所述的方法,其特征在于,所述为所述第二数据栈分配所述内存单元包括:调用所述硬件加速器为所述第二数据栈分配所述内存单元。8.根据权利要求4至7中任一项所述的方法,其特征在于,所述第一阈值以及所述第四阈值为0。9.一种内存释放方法,其特征在于,包括:根据第一数据栈,接收目标应用程序释放的内存资源,其中,所述第一数据栈用于指示
所述目标应用程序可使用的内存资源;基于所述可使用的内存资源为第七内存资源,所述第七内存资源等于第五阈值,根据第二数据栈接收所述目标应用程序释放的内存资源,其中,所述第二数据栈用于指示所述目标应用程序可使用的第八内存资源,所述第八内存资源未使所述第二数据栈为栈满状态,所述第一数据栈与所述第二数据栈不同。10.根据权利要求9所述的方法,其特征在于,所述第七内存资源以及所述第八内存资源包括内存单元的数量,所述第一数据栈的长度以及所述第二数据栈的长度与所述内存单元的数量呈正相关,所述第一数据栈以及所述第二数据栈中的内存单元的大小相同。11.根据权利要求10所述的方法,其特征在于,所述根据第二数据栈向所述目标应用程序提供内存资源之前,所述方法还包括:获取所述第一数据栈指示的第九内存资源,所述第九内存资源更新后得到所述第七内存资源;基于所述第九内存资源大于或等于第六阈值且小于所述第五阈值,释放所述第二数据栈中的所述内存单元,以便将所述第二数据栈指示的第十内存资源更新为所述第八内存资源。12.根据权利要求11所述的方法,其特征在于,所述根据第二数据栈向所述目标应用程序提供内存资源之后,所述方法还包括:获取所述第二数据栈指示的第十一内存资源,所述第八内存资源更新后得到所述第十一内存资源,所述第十一内存资源大于所述第八内存资源;基于所述第十一内存资源大于或等于第七阈值且小于第八阈值,释放所述第一数据栈中的所述内存单元。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:获取所述第二数据栈指示的第十二内存资源,所述第十一内存资源更新后得到所述第十二内存资源;基于所述第十二内存资源等于所述第八阈值,根据所述第一数据栈接收所述目标应用程序释放的内存资源。14.根据权利要求12或13所述的方法,其特征在于,所述释放所述第一数据栈中的所述内存单元包括:调用硬件加速器释放所述第一数据栈中的所述内存单元。15.根据权利要求11至14中任一项所述的方法,其特征在于,所述释放所述第二数据栈中的所述内存单元包括:调用硬件加速器释放所述第二数据栈中的所述内存单元。16.一种内存分配设备,其特征在于,包括:处理单元,用于根据第一数据栈,向目标应用程序提供内存资源,其中,所述第一数据栈用于指示所述目标应用程序可使用的内存资源;所述处理单元,还用于基于所述目标应用程序可使用的内存资源为第一内存资源,所述第一内存资源等于第一阈值,根据第二数据栈向所述目标应用程序提供内存资源,其中,所述第二数据栈用于指示所述目标...
【专利技术属性】
技术研发人员:熊婕,王睿,秦涛,史济源,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。