[发明专利]内存预留方法及装置有效
申请号: | 201611035635.0 | 申请日: | 2016-11-22 |
公开(公告)号: | CN106708752B | 公开(公告)日: | 2019-09-13 |
发明(设计)人: | 郭峰;向和礼 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F12/1027 | 分类号: | G06F12/1027;G06F9/50 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 邓超 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存块 物理地址 内存 预留 排序 应用程序启动 大小关系 内存碎片 虚拟地址 应用程序 有效减少 释放 减小 申请 合并 记录 | ||
本发明提供了一种内存预留方法及装置,所述方法包括:在应用程序启动之前,获取用于预留给应用程序的多个内存块的物理地址,将所述多个内存块按照其对应的物理地址的大小关系进行排序;将排序后的所述多个内存块按照其对应的物理地址从大到小的顺序逐一释放;将释放后的所述多个内存块逐一重新申请,并记录重新申请后的所述多个内存块的物理地址与虚拟地址的对应关系。如此,可以有效减少内存块合并过程中的内存碎片,提高内存性能,减小CPU的负载。
技术领域
本发明涉及内存管理技术领域,具体而言,涉及一种内存预留方法及装置。
背景技术
通信技术的迅速发展对通信设备的功能提出了更高更多的要求,为了满足这些要求,对通信设备上内存的存储容量要求也随之变得越来越大。传统的4KB的普通内存页管理方式已经不能满足用户对设备性能的需求,于是产生了hugepage(大页面内存)的概念,hugepage是一种内存管理方式,与传统的4KB的普通内存页管理方式相比,该种机制管理的内存页尺寸更大,TLB(Translation Lookaside Buffer,翻译后备缓冲)的条目更少,大大提高内存的性能,降低CPU负载。
然而,在现有技术hugepage机制的内存预留方法中,分配给用户态应用程序的内存块在申请以后其物理地址可能不连续,在进行内存块调用时不方便,造成导致内存性能下降,CPU负载过大。
发明内容
为了克服现有技术中的上述不足,本发的目的在于提供一种内存预留方法,所述方法包括:
在应用程序启动之前,获取用于预留给应用程序的多个内存块的物理地址,将所述多个内存块按照其对应的物理地址的大小关系进行排序;
将排序后的所述多个内存块按照其对应的物理地址从大到小的顺序逐一释放;
将释放后的所述多个内存块逐一重新申请,并记录重新申请后的所述多个内存块的物理地址与虚拟地址的对应关系。
进一步地,在上述方法中,所述获取用于预留给应用程序的多个内存块的物理地址的方式,包括:
根据预设配置信息获取需要预留给应用程序的内存块的数量以及每个内存块的大小;
根据所述内存块的数量及内存块的大小进行内存块申请,获取申请到的多个内存块的物理地址。
进一步地,在上述方法中,所述内存块为按照大页hugepage机制申请的物理内存块。
进一步地,在上述方法中,所述方法还包括:
遍历记录有所述多个内存块的物理地址与对应虚拟地址的内存块信息表,将所述多个内存块中所述物理地址与对应虚拟地址均连续的内存块合并为新的内存块,在所述内存块信息表中记录合并后的新的内存块的物理地址及虚拟地址。
进一步地,在上述方法中,所述将所述物理地址与对应虚拟地址均连续的内存块合并为新的内存块,记录合并后的新的内存块的物理地址及虚拟地址的步骤之后,所述方法还包括:
将所述内存块信息表中的内存块的信息发送给系统的内存管理单元,进行应用程序对所述内存块的调用。
本发明的另一目的在于提供一种内存预留装置,所述装置包括:
内存块排序模块,用于在应用程序启动之前,获取用于预留给应用程序的多个内存块的物理地址,将所述多个内存块按照其对应的物理地址的大小关系进行排序;
内存块释放模块,用于将排序后的所述多个内存块按照其对应的物理地址从大到小的顺序逐一释放;
内存块重申请模块,用于将释放后的所述多个内存块逐一重新申请,并记录重新申请后的所述多个内存块的物理地址与虚拟地址的对应关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611035635.0/2.html,转载请声明来源钻瓜专利网。