一种基于pagesize进行内存平移合并降低内存碎片的方法技术

技术编号:27975245 阅读:29 留言:0更新日期:2021-04-06 14:09
本发明专利技术创造提供了一种基于pagesize进行内存平移合并降低内存碎片的方法,在TCMalloc管理内存池的基础上,以page为单位对使用状态的内存,向低地址方向进行平移,填补中间的空闲状态内存,并释放后面的空闲状态内存,释放后的空闲内存处于地址连续的发生合并,从而降低内存碎片。本发明专利技术创造有益效果:使用状态的内存向低地址方向趋于紧凑,同时空闲状态的内存向高地址趋于紧凑并适时发生合并效果,从而降低整体内存池的碎片,提升内存使用效率。

【技术实现步骤摘要】
一种基于pagesize进行内存平移合并降低内存碎片的方法
本专利技术创造属于网络优化领域,尤其是涉及一种基于pagesize进行内存平移合并降低内存碎片的方法。
技术介绍
在引入TCMalloc机制(Thread-CathingMalloc,即线程缓存的malloc)进行预分配的内存管理时,内存必须是按照固定的pagesize进行对齐,配置大小一般可设置4KB或8KB等内存页的整数倍,并以pagesize为单位进行管理(使用span管理指定数量的page),由于上层应用使用内存大小是随机的,最终会拿到不固定数量page的span,随着业务量增大和时间推移,伴随着span的多次申请和释放,必然会产生大量的以pagesize为单位的内存碎片。专利技术创造内容有鉴于此,本专利技术创造旨在提出一种基于pagesize进行内存平移合并降低内存碎片的方法,以解决上述问题中的不足之处。为达到上述目的,本专利技术创造的技术方案是这样实现的:一种基于pagesize进行内存平移合并降低内存碎片的方法,在TCMalloc管本文档来自技高网...

【技术保护点】
1.一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于:在TCMalloc管理内存池的基础上,以page为单位对使用状态的内存,向低地址方向进行平移,填补中间的空闲状态内存,并释放后面的空闲状态内存,释放后的空闲内存处于地址连续的发生合并,用于降低内存使用。/n

【技术特征摘要】
1.一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于:在TCMalloc管理内存池的基础上,以page为单位对使用状态的内存,向低地址方向进行平移,填补中间的空闲状态内存,并释放后面的空闲状态内存,释放后的空闲内存处于地址连续的发生合并,用于降低内存使用。


2.根据权利要求1所述的一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于,内存平移合并的方法包括以下步骤:
A1、内存管理模块定义结构体,针对所有内存进行标记;
A2、使用链表管理步骤A1中标记的结构体对象,保存地址顺序由低到高;
A3、实用内存平移合并方法,平移使用状态内存,并将平移释放后的空闲内存与其它地址连续的空闲内存发生合并;
A4、每个使用状态的内存成功发生平移后,通知申请者更新所申请的内存地址。


3.根据权利要求2所述的一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于:步骤A1中对所有内存进行标记的参数包括内存的大小、地址、申请者信息以及使用者信息。


4.根据权利要求1所述的一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于:执行内存平移合并的方法用于保证在总空闲内存不变的情况下,通过合并一部分小的内存碎片生成较大的空闲内存。


5.根据权利要求1所述的一种基于pagesize进行内存平移合并降低内存碎片的方法,其特征在于,...

【专利技术属性】
技术研发人员:赵伟郭鹏李连成云亚娇
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:天津;12

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

1