[发明专利]一种高效的内存管理方法和装置无效
申请号: | 201010617121.2 | 申请日: | 2010-12-31 |
公开(公告)号: | CN102541654A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 严玄;刘铁华;郑鹏程 | 申请(专利权)人: | 新奥特(北京)视频技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京挺立专利事务所 11265 | 代理人: | 叶树明 |
地址: | 100195 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 内存 管理 方法 装置 | ||
技术领域
本发明涉及视频技术领域,特别涉及一种高效的内存管理方法和装置。
背景技术
在使用C++进行软件开发过程中,对内存进行管理是非常必要的。内存管理的目的主要是有两个,一是维护程序正确性,这是一个基本的问题,因为C++语言不存在对内存自动管理的机制,程序员需要对自己定义的对象进行维护,否则可能存在内存泄漏,而让程序运行正确是软件开发最基本也是最首要的目标;另一个目的就是让程序运行得更加高效,因为在程序执行过程中,为了高效的使用内存资源,往往会根据程序运行的情况去动态的申请、使用、释放某一块内存资源,因此良好的内存管理能提高程序的运行效率,减少因为反复申请——释放操作带来的内存碎片以及时间消耗。
发明内容
本发明提供—种高效的内存管理方法和装置,用来完成内存大小的分配,使用,维护数据的一致性等工作,然后在此基础上,设计一种内存管理方法,使之能完成对使用的内存进行维护、再分配,对未使用的内存进行回收、合并等工作,二者结合来完成对内存的管理。
本发明提供一种高效的内存管理装置,包括:
内存空间扩展模块,用于从系统中申请指定大小的可供使用的内存空间,并对自身申请的内存空间进行管理和维护;
内存大块模块,用于管理一块从内存管理模块中得到的较大块内存空间,并能从这块内存空间中分配出更小的内存块供程序直接使用;
内存小块模块,用于供程序直接使用,记录内存小块模块对象的首地址信息以及空间的大小信息;
内存管理模块,用于管理程序使用的内存,管理内存的分配、回收。
本发明还提供了一种高效的内存管理方法,包括:
扩展内存空间,分配大块内存;
从分配得到的大块内存中分配获得供程序直接使用的内存小块对象;
对使用完成后的内存小块进行回收及合并。
本发明实施例具有以下优点:统一通过内存管理软件中使用的内存,从而避免软件在运行过程中频繁的在堆栈中分配和释放内存,并通过合并机制减少内存碎片,达到对内存管理的要求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种内存管理装置的结构图;
图2为本发明实施例一种高效的内存管理方法的流程示意图;
图3为本发明实施例获得内存小块对象的流程图;
图4为本发明实施例内存小决对象回收的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,需要指出的是,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种高效的内存管理装置,包括:
内存空间扩展模块101,用于从系统中申请指定大小的可供使用的内存空间,并对自身申请的内存空间进行管理和维护,即在析构时要将申请的内存空间释放,交还给操作系统。分配内存时采用虚拟分配的方式将分配得到的 内存空间最大化使用。在分配地址空间时所分配的内存空间大小最少为1MB。
内存大块模块102,用于管理一块从内存管理模块中得到的较大块内存空间,并能从这块内存空间中分配出更小的内存块供程序直接使用,对使用完成后的内存小块进行回收、合并,同时还能记录程序使用的地址和首地址间的偏移位置信息,以及使用状态。
内存小块模块103,为本实施例内存管理装置中的最小单元,用于供程序直接使用,记录内存小块模块对象的首地址信息以及空间的大小信息,记录这个对象中保存实际数据信息的首地址位置与该对象首地址位置的偏移,能绑定、卸载、获得其保存的对象数据,标记自身的有效性等。
内存管理模块104,用于管理程序使用的内存,管理内存的分配、回收,在其空间不足时,通过内存空间扩展模块101从系统中分配指定大小的内存空间,并添加到自身的管理中;能从空余的地址空间中分配指定大小的内存大块对象,回收使用完成了的内存小块对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新奥特(北京)视频技术有限公司,未经新奥特(北京)视频技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010617121.2/2.html,转载请声明来源钻瓜专利网。