[发明专利]一种内存管理方法及装置有效
申请号: | 201010213298.6 | 申请日: | 2010-06-18 |
公开(公告)号: | CN101847127A | 公开(公告)日: | 2010-09-29 |
发明(设计)人: | 马晓靖 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 | ||
1.一种内存管理方法,其特征在于,包括:
记录缓存池中当前可用内存对象的数量;
当缓存池中当前可用内存对象的数量低于预设的第一阈值时,为所述缓存池分配新的缓冲块;所述新的缓冲块所占用的物理页的大小与所述缓存池中已有内存对象所占用的物理页的大小的总和小于为该缓存池预留的物理内存的大小;
访问所述新的缓冲块,为所述新的缓冲块中的内存对象分配对应的物理页。
2.如权利要求1所述的方法,其特征在于,第一阈值的大小根据为该缓存池预留的物理内存大小设定的比例值来确定。
3.如权利要求1或2所述的方法,其特征在于,当缓存池中当前可用内存对象的数量低于预设的第二阈值时,还包括:
对于预先设定的高优先级的应用程序的内存申请的要求,分配缓存池中的可用内存对象;
对于预先设定的低优先级的应用程序的内存申请的要求,停止分配缓存池中的内存对象。
4.如权利要求3所述的方法,其特征在于,所述应用程序预先设定的优先级通过下述方式实现:
对应用程序的可执行文件进行扩展,在扩展后的可执行文件中增加自定义的高优先级或低优先级的属性段。
5.如权利要求3所述的方法,其特征在于,所述记录缓存池中当前的可用内存对象的数量,包括:
记录缓存池中,部分满和全满的缓冲块中可用内存对象数量的总和;所述部分满的缓冲块为所包含的内存对象部分已被分配的缓冲块,所述全满的缓冲块为所包含的内存对象都未被分配的缓冲块。
6.如权利要求5所述的方法,其特征在于,分配缓存池中的可用内存对象,包括:
从缓存池中,部分满和/或全满的缓冲块中获取可用内存对象进行分配。
7.如权利要求1或2所述的方法,其特征在于,当不再需要使用缓存池时,还包括:
释放缓存池中每个缓冲块的内存对象;
释放每个缓冲块;
释放整个缓存池。
8.一种内存管理装置,其特征在于,包括:
记录模块,用于记录缓存池中当前可用内存对象的数量;
缓冲块分配模块,用于当缓存池中当前可用内存对象的数量低于预设的第一阈值时,为所述缓冲池分配新的缓冲块;所述新的缓冲块所占用的物理页的大小与所述缓存池中已有内存对象所占用的物理页的大小的总和小于为该缓存池预留的物理内存的大小;
物理页分配模块,用于为所述新的缓冲块中的内存对象分配对应的物理页。
9.如权利要求8所述的装置,其特征在于,进一步还包括:
内存对象分配模块,用于当缓存池中当前可用内存对象的数量低于预设的第二阈值时,对于预先设定的高优先级的应用程序的内存申请的要求,分配缓存池中的可用内存对象;以及当缓存池中当前可用内存对象的数量低于第二阈值时,对于预先设定的低优先级的应用程序的内存申请的要求,停止分配缓存池中的内存对象。
10.如权利要求9所述的装置,其特征在于,所述记录模块,进一步用于记录缓存池中,部分满和全满的缓冲块中可用内存对象数量的总和;所述部分满的缓冲块为所包含的内存对象部分已被分配的缓冲块;所述全满的缓冲块为所包含的内存对象都未被分配的缓冲块。
11.如权利要求10所述的装置,其特征在于,所述内存对象分配模块,进一步用于从缓存池中,部分满和/或全满的缓冲块中获取可用内存对象进行分配。
12.如权利要求8-11任一项所述的装置,其特征在于,进一步还包括:
释放模块,用于当不再需要使用缓存池时,释放缓存池中每个缓冲块的内存对象,释放每个缓冲块,释放整个缓存池。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010213298.6/1.html,转载请声明来源钻瓜专利网。