[發明專利]一種高效的內存管理方法和裝置無效
| 申請號: | 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.szxzyx.cn/pat/books/201010617121.2/2.html,轉載請聲明來源鉆瓜專利網。





