内存管理方法、服务器及可读存储介质技术

技术编号:23084876 阅读:42 留言:0更新日期:2020-01-11 01:05
本申请实施例提供一种内存管理方法、服务器及可读存储介质,通过对服务器的内存池进行划分,得到多个用于分段加锁的内存块,并将每一内存块分别划分为多个数据区域后,从每一内存块中划分出多个内存页,从而可以将数据存储到不同的内存块中,同时将内存块连接到不同的数据区域中,并将内存页划分为多个内存页块进行内存管理和分配,由此避免内存管理过程中存在的碎片化问题,节约存储空间的资源,从而提升内存使用效率以及业务数据并发访问的速度。

Memory management method, server and readable storage medium

【技术实现步骤摘要】
内存管理方法、服务器及可读存储介质
本申请涉及内存管理领域,具体而言,涉及一种内存管理方法、服务器及可读存储介质。
技术介绍
目前的内存管理方案中,存在明显的碎片化问题,导致存储空间的资源浪费严重,从而影响内存使用效率以及业务数据并发访问的速度。
技术实现思路
有鉴于此,本申请的目的在于提供一种内存管理方法、服务器及可读存储介质,能够避免内存管理过程中存在的碎片化问题,节约存储空间的资源,从而提升内存使用效率以及业务数据并发访问的速度。根据本申请的一方面,提供一种内存管理方法,应用于服务器,所述方法包括:响应内存初始化操作,对所述服务器的内存池进行划分,得到多个用于分段加锁的内存块;将每一内存块分别划分为多个数据区域,并根据每一内存块的多个数据区域从该内存块中划分出多个内存页;对所述多个内存页分别进行数据块分类,得到多个内存页块,并将每个内存页块中的数据连接到所对应的内存块的不同数据区域中。根据本申请的另一方面,提供一种内存管理方法,应用于服务器,所述服务器的内存池预先划分为多个用于分本文档来自技高网...

【技术保护点】
1.一种内存管理方法,其特征在于,应用于服务器,所述方法包括:/n响应内存初始化操作,对所述服务器的内存池进行划分,得到多个用于分段加锁的内存块;/n将每一内存块分别划分为多个数据区域,并根据每一内存块的多个数据区域从该内存块中划分出多个内存页;/n对所述多个内存页分别进行数据块分类,得到多个内存页块,并将每个内存页块中的数据连接到所对应的内存块的不同数据区域中。/n

【技术特征摘要】
1.一种内存管理方法,其特征在于,应用于服务器,所述方法包括:
响应内存初始化操作,对所述服务器的内存池进行划分,得到多个用于分段加锁的内存块;
将每一内存块分别划分为多个数据区域,并根据每一内存块的多个数据区域从该内存块中划分出多个内存页;
对所述多个内存页分别进行数据块分类,得到多个内存页块,并将每个内存页块中的数据连接到所对应的内存块的不同数据区域中。


2.根据权利要求1所述的内存管理方法,其特征在于,所述对所述服务器的内存池进行划分,得到多个内存块的步骤,包括:
根据预先配置的内存块类别确定待划分的每个内存块的内存块大小,其中,每一内存块类别对应一种内存块大小;
根据所述待划分的每个内存块的内存块大小,对所述服务器的内存池进行划分,得到每个内存块类别所对应的内存块。


3.根据权利要求1所述的内存管理方法,其特征在于,所述根据每一内存块的多个数据区域从该内存块中划分出多个内存页的步骤,包括:
针对每一内存块,计算该内存块中的行内元素标签区域、页面索引数组区域和内存分配数据区域的第一内存和,以及页面索引数组区域、页面索引数组区域和单个内存页的第二内存和;
根据所述第一内存和以及所述第二内存和计算该内存块中的可划分内存页数量;
根据该内存块中的可划分内存页数量从该内存块中划分出多个内存页;
其中,所述页面索引数组区域中的每个页面索引类别、所述内存分配数据区域中包括每个内存页,以及所述行内元素标签区域的每个行内元素标签指针之间存在相互映射关系。


4.一种内存管理方法,其特征在于,应用于服务器,所述服务器的内存池预先划分为多个用于分段加锁的内存块,每一内存块分别划分为多个数据区域,且预先根据每一内存块的多个数据区域从每一内存块中划分出多个内存页,每一内存块中的多个内存页通过数据块分类得到多个内存页块,每个内存页块中的数据连接到所对应的内存块的不同数据区域中,所述方法包括:
接收内存管理请求;
根据该内存管理请求对对应的内存块中的数据区域执行相应的内存管理操作。


5.根据权利要求4所述的内存管理方法,其特征在于,所述根据该内存管理请求对对应的内存块中的数据区域执行相应的内存管理操作的步骤,包括:
若该内存管理请求为内存分配请求,则根据所述内存分配请求中所申请分配的内存大小,从多个内存块中确定对应的目标内存块;
查找所述目标内存块的中心链表区域是否为空;
若所述目标内存块的中心链表区域不为空,则从所述目标内存块的行内元素标签区域中第一个行内元素标签,并从该行内元素标签的对象值中计算出该行内元素标签所管理的下一个可写的组块内存块绝对地址;
跳转到该组块内存块绝对地址,从该组块内存块绝对地址中的起始字节中记录下一个对象的位置,并更新该行内元素标签管理的下一个可写相对地址以及已用组块数量;
计算当前组块在该行内元素标签管理的各个内存页中的位置索引值,并返回该组块内存块绝对地址、该位置索引值以及该行内元素标签的页码,以完成内存分配。


6.根据权利要求5所述的内存管理方法,其特征在于,所述根据该内存管理请求对对应的内存块中的数据区域执行相应的内存管理操作的步骤,还包括:
若所述目标内存块的中心链表区域为空,则根据所述目标内存块确定待分配内存页的数量;
若所述待分配内存页的数量低于预设数量,则在该目标内存块的Free小块内存链表区域中查找是否存在对应的行内元素标签;
若在该目标内存块的Free小块内存链表区域中查找到不存在对应的行内元素标签,或者所述待分配内存页的数量不低于预设数量,则从该目标内存块的Large大块内存链表区域中查找是否存在可分配内存;
若从该目标内存块的Large大块内存链表区域中查找到不存在可分配内存,则返回内存为空的提示信息后执行内存分配操作。


7.根据权利要求6所述的内存管理方法,其特征在于,所述根据该内存管理请求对对应的内存块中的数据区域执行相应的内存管理操作的步骤,还包括:
若从该目标内存块的Large大块内存链表区域中查找到存在可分配内存,则遍历查找所述Large大块内存链表区域下的每一项行内元素标签的长度是否大于该目标内存块的内存页数;
在查找到长度大于该目标内存块的内存页数的行内元素标签后,从所述Large大块内存链表区域提取多个内存页,并从行内元素标签区域中提取一个新的行内元素标签管理提取的多...

【专利技术属性】
技术研发人员:陈慕仪
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:广东;44

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

1