[发明专利]内存分配方法及装置、内存的回收方法在审
申请号: | 201110446783.2 | 申请日: | 2011-12-27 |
公开(公告)号: | CN103186469A | 公开(公告)日: | 2013-07-03 |
发明(设计)人: | 王军 | 申请(专利权)人: | 上海博泰悦臻电子设备制造有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆苏华 |
地址: | 200030 上海市徐汇区天钥*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 分配 方法 装置 回收 | ||
技术领域
本发明涉及内存分配的技术领域,尤其是一种内存分配方法及装置,内存的回收方法。
背景技术
内存是连接CPU和其他设备的通道,起到缓冲和数据交换的作用。当CPU工作时(例如,CPU运行程序),需要从硬盘等外部存储器上读取数据,但由于硬盘这个“仓库”太大,加上离CPU也很“远”,运输“原料”数据的速度就比较慢,导致CPU的生产效率大打折扣。为了解决这个问题,在CPU与外部存储器之间,建了一个“小仓库”—内存。
目前内存的分配和回收机制通常是:CPU运行的程序每次需要使用内存时,向系统申请一次内存(可以称为内存分配请求),系统根据本次程序运行的数据量(也可以看成是程序申请获取的内存的大小)分配相匹配的内存,程序在该分配的内存中运行数据,并在运行完毕之后将内存交换给系统;下次程序运行时,系统再根据上述方式重新分配并回收内存。具体的内存分配和回收的机制可参考公开号为CN 102012870A的中国专利申请。
内存是一个连续的存储空间,在进行内存分配时,内存的存储空间是连续分配的,但是内存回收之后难以形成连续的存储空间。由于不同的程序获取的内存的大小不同,因此内存回收之后很容易造成内存碎片,影响内存的使用。另外,系统不停的分配和回收内存,还会影响系统的工作效率,并且影响内存的性能。
因此如何减少内存碎片,提高系统的工作效率及内存的性能成为目前亟待解决的问题之一。
发明内容
本发明解决的问题是现有技术中的内存碎片较多,系统工作效率低下,内存性能不高的问题。
为解决上述问题,本发明的技术方案提供了一种内存分配方法,包括:
比较系统分配参数和获得的内存分配请求中的需求容量;
若所述需求容量小于或等于所述系统分配参数,则分配第一类内存,并为所述分配的第一类内存设置使用状态;所述第一类内存的容量是预设的且与所述内存分配请求中的需求容量相匹配;
若所述需求容量大于所述系统分配参数,则分配所述需求容量的第二类内存,并为分配的第二类内存设置使用状态。
可选的,所述分配第一类内存包括:
若存在空闲的已分配的第一类内存,则分配该空闲的已分配的第一类内存;否则从系统内存中分配第一类内存。
可选的,所述从系统内存中分配第一类内存包括:每次从所述系统内存中分配预定数目的等大的第一类内存,所述预定数目的第一类内存以链表的形式存储。
可选的,所述分配所述需求容量的第二类内存包括:
若存在空闲的已分配的第二类内存,则分配该空闲的已分配的第二类内存;否则从系统内存中分配第二类内存。
可选的,所述分配该空闲的已分配的第二类内存包括:若所述需求容量与该空闲的已分配的第二类内存的容量的差值大于所述系统分配参数,则按照所述需求容量将该空闲的已分配的第二类内存切割成新的第二类内存并分配。
可选的,从所述系统内存中分配的第二类内存以链表的形式存储。
可选的,所述第二类内存在链表中按照大小排序。
可选的,所述第一类内存的容量是预设且与所述内存分配请求中的需求容量相匹配的包括:将所述需求容量基于预定字节向上对齐确定预设且与所述需求容量相匹配的第一类内存的容量。
为解决上述问题,本发明的技术方案还提供了一种内存分配装置,包括:
判断单元,用以比较系统分配参数和获得的内存分配请求中的需求容量;
分配单元,配置成在所述判断单元判断所述需求容量小于或等于所述系统分配参数时,分配第一类内存,并为所述分配的第一类内存设置使用状态;所述第一类内存的容量是预设且与所述需求容量相匹配的;在所述判断单元判断所述需求容量大于所述系统分配参数时,分配所述需求容量的第二类内存,并为所述分配的第二类内存设置使用状态。
为解决上述问题,本发明的技术方案还提供了一种内存的回收方法,包括:
基于使用完的内存的容量,将所述内存回收至所述第一类内存或第二类内存,并重新设置所述第一类内存或第二类内存的使用状态。
与现有技术相比,本发明具有以下优点:
基于内存分配请求中的需求容量和系统分配参数确定本次分配的内存是定长的内存还是变长的内存。若是定长的,则分配第一类内存;若是变长的,则分配第二类内存。将定长和变长结合起来分配内存,不仅满足了程序的需求,而且提高了整个系统的性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海博泰悦臻电子设备制造有限公司,未经上海博泰悦臻电子设备制造有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110446783.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车节气阀
- 下一篇:横跨道路上空的立体车库框架结构形式