[发明专利]一种内存分配方法及装置在审
申请号: | 201710344023.8 | 申请日: | 2017-05-16 |
公开(公告)号: | CN107168800A | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 王栋 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 李世喆 |
地址: | 450000 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种内存分配方法及装置。
背景技术
内存是计算机的重要组件之一,计算机中所有程序的运行都是在内存中进行的,因此计算机的性能严重依赖于内存性能的好坏。
目前,在Linux系统中,通常我们习惯于使用malloc等API(Application Programming Interface,应用程序编程接口)函数来申请及分配运行进程所需要的内存。
但是,频繁使用API函数会造成大量的内存碎片,同时,通过API函数申请分配内存时还会存在跨CPU(Central Processing Unit,中央处理器)节点分配内存的情况,因此,通过上述技术方案分配运行进程所需要的内存时,会影响内存的访问速度。
发明内容
本发明实施例提供了一种内存分配的方法及装置,能够提高内存访问速度。
第一方面,本发明实施例提供了一种内存分配的方法,包括:
确定运行进程所对应的CPU;
在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池;
当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程。
优选地,进一步包括:
当所述运行进程释放内存时,将所述运行进程分配的内存区域释放回所述运行进程相对应的内存池中。
优选地,所述确定运行进程所对应的CPU,包括:
确定运行进程所需内存池的大小;
确定每一个待选择CPU所分别对应的本地内存的剩余空间;
根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以及所述运行进程所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程所对应的CPU。
优选地,在所述在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池之后,在所述从所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程之前,进一步包括:
预先将确定的所述内存池划分为预设数量个内存区域;
则,所述当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程,包括:
当所述运行进程申请内存时,确定所述运行进程所需要申请的内存大小;
根据确定的内存大小,以及所述运行进程相对应的所述内存池中各个所述内存区域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述内存区域分配给所述运行进程。
优选地,还包括:
监测所述运行进程是否结束运行,在所述运行进程结束运行时,将所述运行进程相对应的所述内存池释放回所述运行进程所对应的CPU的本地内存中。
第二方面,本发明实施例提供了一种内存分配装置,包括:
确定单元、申请单元、分配单元;其中,
所述确定单元,用于确定运行进程所对应的CPU;
所述申请单元,用于在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池;
所述分配单元,用于当所述运行进程申请内存时,从所述申请单元申请的所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程。
优选地,进一步包括:
释放单元,用于当所述运行进程释放内存时,将所述运行进程分配的内存区域释放回所述运行进程相对应的内存池中。
优选地,所述确定单元,包括:内存池大小确定子单元、剩余空间确定子单元和CPU确定子单元;其中,
内存池大小确定子单元,用于确定运行进程所需内存池的大小;
剩余空间确定子单元,用于确定每一个待选择CPU所分别对应的本地内存的剩余空间。
CPU确定子单元,用于根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以及所述运行进程所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程所对应的CPU。
优选地,进一步包括:
划分单元,用于预先将所述申请单元申请的所述内存池划分为预设数量个内存区域;
所述分配单元,包括:
内存大小确定子单元,用于当所述运行进程申请内存时,确定所述运行进程所需要申请的内存大小;
分配子单元,用于根据获取的内存大小,以及所述运行进程相对应的所述内存池中各个所述内存区域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述内存区域分配给所述运行进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710344023.8/2.html,转载请声明来源钻瓜专利网。