[发明专利]一种内存管理方法及系统有效
申请号: | 201510159220.3 | 申请日: | 2015-04-03 |
公开(公告)号: | CN104778125B | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 赵如奇 | 申请(专利权)人: | 无锡天脉聚源传媒科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/50 |
代理公司: | 北京尚伦律师事务所11477 | 代理人: | 张亮 |
地址: | 214000 江苏省无锡*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 系统 | ||
技术领域
本发明涉及互联网技术领域,特别涉及一种内存管理方法及系统。
背景技术
随着互联网技术的发展,计算机领域内的数据量及数据处理需求不断提升,且负载对于系统性能的要求越来越高。从实时性的角度来讲,要求内存分配的过程要尽可能地快,但是在数据量大的情况下,内存分配的效率必然会受到影响;同时,因为内存是一种有限的资源,且由于系统硬件环境空间有限,内存分配还要求高效,因此在内存分配的过程中需要尽量减少浪费;因此,业界急需提出一种高效且处理效率高的内存管理办法,使其可以有效实现上述要求。
发明内容
本发明提供一种内存管理方法及系统,用以高效合理地分配内存,提高了处理效率,提升了内存利用率和系统性能。
根据本发明实施例的第一方面,提供一种内存管理方法,包括:
将内存预先划分为多个内存分区,将所述内存分区分别分配为多个不同量级的内存块;
接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址;
检测所述内存分区中不同量级的所述内存块的使用率,并根据所述使用率重新调整所述内存分区中的内存块的量级。
在一个实施例中,所述将内存预先划分为多个内存分区,并将各所述内存分区分别分配为多个不同量级的内存块,包括:
根据需要将内存预先划分为多个相同/不同大小的内存分区;
将所述内存分区分别分配为多个不同量级的内存块,并将所述内存块的使用状态标识为未使用;其中,所述内存块的不同量级为128字节或/和512字节或/和1024字节或/和1536字节。
在一个实施例中,所述接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,包括:
接收包含内存需求的网络数据包;
检测各内存分区中使用状态为未使用的所述内存块中,是否存在内存容量等于或大于所述网络数据包的内存需求的所述内存块;
在各内存分区中存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;
将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
在一个实施例中,所述根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,还包括:
在各内存分区中不存在内存容量等于或大于所述网络数据包的内存需求的所述内存块时,检测当前内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求;
在当前内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块;
提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
在一个实施例中,所述根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址,还包括:
在当前内存分区中所有内存块的总内存容量小于所述网络数据包的内存需求时,检测其他内存分区中使用状态为未使用的所有内存块的总内存容量是否等于或大于所述网络数据包的内存需求;
在其他内存分区中所有内存块的总内存容量等于或大于所述网络数据包的内存需求时,将其他所述内存分区的未使用内存块重新分配为不同量级的内存块,且重新分配后的所述内存块中至少包含一个所属量级的内存容量与所述网络数据包的内存需求之间差值最小的内存块;
提取内存容量与所述网络数据包的内存需求之间差值最小的所述内存块的内存地址;将提取的所述内存地址分配给所述网络数据包后,将提取内存地址的所述内存块的使用状态标识为已使用。
根据本发明实施例的第二方面,还提供一种内存管理系统,包括:
内存分配模块,用于将内存预先划分为多个内存分区,将所述内存分区分别分配为多个不同量级的内存块;
内存地址分配模块,用于接收包含内存需求的网络数据包,并根据所述网络数据包中包含的内存需求的大小为所述网络数据包分配所述内存块的内存地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡天脉聚源传媒科技有限公司,未经无锡天脉聚源传媒科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510159220.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内核多线程直接存储驱动实现方法
- 下一篇:一种主备切换方法及系统