[发明专利]内存分配方法和装置、电子设备和存储介质有效
申请号: | 202110573492.3 | 申请日: | 2021-05-25 |
公开(公告)号: | CN113032156B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 邱海港 | 申请(专利权)人: | 北京金山云网络技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京华夏泰和知识产权代理有限公司 11662 | 代理人: | 刘晓燕 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 分配 方法 装置 电子设备 存储 介质 | ||
本申请提供了一种内存分配方法和装置、电子设备和存储介质,其中,该方法包括:接收到第一线程发送的内存申请消息,其中,第一线程为与目标应用对应的线程,内存申请消息用于申请目标内存大小的内存空间;响应内存申请消息,从多个内存块中确定出与第一线程的目标线程标识对应的目标内存块,其中,多个内存块是为目标应用分配的内存块,多个内存块允许并行加锁申请内存;在从目标内存块的空闲内存空间中查找到内存大小大于或者等于目标内存大小的第一内存空间的情况下,将第一内存空间分配给第一线程。通过本申请,解决了相关技术中的内存分配方式在多线程并发申请内存时存在易造成加锁串行导致的内存分配效率低的问题。
技术领域
本申请涉及数据处理领域,尤其涉及一种内存分配方法和装置、电子设备和存储介质。
背景技术
目前,在如MySQL(一种关系型数据库管理系统)等数据库的业务逻辑(例如,内存缓存的使用)中,查询数据、更新数据等使用的内存空间都是通过malloc(memoryallocation,指动态内存分配函数)分配生成的,即,所有的内存空间都是通过动态申请完成的。
上述业务逻辑使用的是大都是临时内存,一个事务完成或者一个连接完成之后,会把动态申请的内存空间全部释放掉,在一个事务过程中,有大量的内存申请释放,长期频繁的申请释放会导致大量的内存碎片。
对于上述内存空间的分配方式,内存申请过于频繁,如果多线程并发申请内存,会造成加锁串行,影响内存分配的效率。可见,相关技术中的内存分配方式,在多线程并发申请内存时存在易造成加锁串行导致的内存分配效率低的问题。
发明内容
本申请提供了一种内存分配方法和装置、电子设备和存储介质,以至少解决相关技术中的内存分配方式在多线程并发申请内存时存在易造成加锁串行导致的内存分配效率低的问题。
根据本申请实施例的一个方面,提供了一种内存分配方法,包括:接收到第一线程发送的内存申请消息,其中,所述第一线程为与目标应用对应的线程,所述内存申请消息用于申请目标内存大小的内存空间;响应所述内存申请消息,从多个内存块中确定出与所述第一线程的目标线程标识对应的目标内存块,其中,所述多个内存块是为所述目标应用分配的内存块,所述多个内存块允许并行加锁申请内存;在从所述目标内存块的空闲内存空间中查找到内存大小大于或者等于所述目标内存大小的第一内存空间的情况下,将所述第一内存空间分配给所述第一线程。
可选地,从所述多个内存块中确定出与所述第一线程的所述目标线程标识对应的所述目标内存块包括:将所述目标线程标识对目标值进行哈希取余,得到目标哈希值,其中,所述目标值为所述多个内存块中包含的内存块的总数量;将所述多个内存块中与所述目标哈希值对应的内存块,确定为所述目标内存块。
可选地,将所述目标线程标识对所述目标值进行哈希取余,得到所述目标哈希值包括:将所述第一线程的目标线程地址对所述目标值进行哈希取余,得到所述目标哈希值,其中,所述目标线程标识为所述目标线程地址。
可选地,在将所述第一线程的所述目标线程地址对所述目标值进行哈希取余之前,所述方法还包括:在所述目标线程地址的最低位为零的情况下,将所述目标线程地址向右平移至少一位,直到所述目标线程地址的最低位不为零,得到更新后的所述目标线程地址。
可选地,在接收到所述第一线程发送的所述内存申请消息之前,所述方法还包括:在目标设备的操作系统启动的情况下,向所述目标设备的操作系统申请第二内存空间,其中,所述目标设备为运行所述目标应用的设备;将所述第二内存空间划分成目标数量的内存块,得到所述多个内存块。
可选地,将所述第一内存空间分配给所述第一线程包括:通过调用伙伴系统的内存分配接口,将所述目标内存块中的所述第一内存空间分配给所述第一线程,其中,传入所述伙伴系统的内存分配参数包括:所述目标内存块的内存范围,所述目标内存大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司,未经北京金山云网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110573492.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种燃料电池系统的吹扫控制方法和装置
- 下一篇:一种燃料电池系统的控制方法