小对象内存管理方法、装置、电子设备和计算机可读介质制造方法及图纸

技术编号:23314701 阅读:28 留言:0更新日期:2020-02-11 17:40
本发明专利技术提供了一种小对象内存管理方法、装置、电子设备和计算机可读介质,涉及内存管理的技术领域,所述方法包括:预先配置有多个等级的内存池,不同等级的内存池中的内存块的大小不同;确定申请的内存大小所对应的第一内存池;根据所述第一内存池的第一空闲列表,确定第一内存块地址;返回申请到的所述第一内存块地址;本发明专利技术能够有效避免出现内存碎片,极大减少申请内存时查询空闲内存块的时间,提升命中率。

Small object memory management methods, devices, electronic devices and computer-readable media

【技术实现步骤摘要】
小对象内存管理方法、装置、电子设备和计算机可读介质
本专利技术涉及内存管理
,尤其是涉及一种小对象内存管理方法、装置、电子设备和计算机可读介质。
技术介绍
内存是软件的基石,内存管理是否得当往往决定一个软件的质量。通常应用程序中需要大量且高频的使用较小字节内存的对象,如符串、数组、结构体以及其他自定义类型等。这些小字节对象通常数量庞大且生命周期短暂,若频繁的申请和释放,势必会导致存在较为严重的内存碎片,进而导致程序的性能急剧恶化。而频繁使用new-delete(C++方式的申请-释放)、malloc-free(C方式的申请-释放)等系统调用方式,由于他们调用底层操作系统,涉及到内核态和用户态之间来回切换,调用速度较慢,容易出现卡顿,甚至比进程内函数调用慢很多。
技术实现思路
本专利技术的目的在于提供一种小对象内存管理方法、装置、电子设备和计算机可读介质,能够有效避免出现内存碎片,极大减少申请内存时查询空闲内存块的时间,提升命中率。第一方面,实施例提供一种小对象内存管理方法,预先配置有多个等级的内存池,不同等级的本文档来自技高网...

【技术保护点】
1.一种小对象内存管理方法,其特征在于,预先配置有多个等级的内存池,不同等级的内存池中的内存块的大小不同,所述方法包括:/n确定申请的内存大小所对应的第一内存池;/n根据所述第一内存池的第一空闲列表,确定第一内存块地址;/n返回申请到的所述第一内存块地址。/n

【技术特征摘要】
1.一种小对象内存管理方法,其特征在于,预先配置有多个等级的内存池,不同等级的内存池中的内存块的大小不同,所述方法包括:
确定申请的内存大小所对应的第一内存池;
根据所述第一内存池的第一空闲列表,确定第一内存块地址;
返回申请到的所述第一内存块地址。


2.根据权利要求1所述的方法,其特征在于,所述第一空闲列表预先配置有最小存储阈值,所述第一空闲列表用于存放最近释放的内存块的索引;根据所述第一内存池的第一空闲列表,确定第一内存块地址的步骤,包括:
判断所述第一空闲列表中索引的个数是否大于所述最小存储阈值;
如果是,则将所述第一空闲列表中队尾的索引作为所述第一内存块的索引;根据所述第一内存块的索引计算所述第一内存块的地址;
如果不是,则根据预先确定的最大空闲索引确定所述第一内存块的地址。


3.根据权利要求2所述的方法,其特征在于,根据预先确定的最大空闲索引确定所述第一内存块的地址的步骤,包括:
判断所述最大空闲索引是否存在;
如果存在,则将所述最大空闲索引作为所述第一内存块的索引;根据所述第一内存块的索引计算所述第一内存块的地址;
如果不存在,且所述第一空闲列表不为空,则将所述第一空闲列表中队尾的索引作为所述第一内存块的索引;根据所述第一内存块的索引计算所述第一内存块的地址;
如果不存在,且所述第一空闲列表为空,则根据空闲掩码确定第一内存块的地址。


4.根据权利要求3所述的方法,其特征在于,每当所述最大空闲索引被使用后,将所述最大空闲索引加1作为最新的所述最大空闲索引,当新的所述最大空闲索引等于所述第一内存池的容量时,将所述最大空闲索引至为空。


5.根据权利要求2所述的方法,其特征在于,还包括:
判断需释放的...

【专利技术属性】
技术研发人员:刘志伟
申请(专利权)人:广东三维家信息科技有限公司
类型:发明
国别省市:广东;44

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

1