[發(fā)明專利]內(nèi)存分配方法及裝置、內(nèi)存的回收方法在審
| 申請(qǐng)?zhí)枺?/td> | 201110446783.2 | 申請(qǐng)日: | 2011-12-27 |
| 公開(kāi)(公告)號(hào): | CN103186469A | 公開(kāi)(公告)日: | 2013-07-03 |
| 發(fā)明(設(shè)計(jì))人: | 王軍 | 申請(qǐng)(專利權(quán))人: | 上海博泰悅臻電子設(shè)備制造有限公司 |
| 主分類號(hào): | G06F12/02 | 分類號(hào): | G06F12/02 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 駱蘇華 |
| 地址: | 200030 上海市徐匯區(qū)天鑰*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 分配 方法 裝置 回收 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及內(nèi)存分配的技術(shù)領(lǐng)域,尤其是一種內(nèi)存分配方法及裝置,內(nèi)存的回收方法。
背景技術(shù)
內(nèi)存是連接CPU和其他設(shè)備的通道,起到緩沖和數(shù)據(jù)交換的作用。當(dāng)CPU工作時(shí)(例如,CPU運(yùn)行程序),需要從硬盤(pán)等外部存儲(chǔ)器上讀取數(shù)據(jù),但由于硬盤(pán)這個(gè)“倉(cāng)庫(kù)”太大,加上離CPU也很“遠(yuǎn)”,運(yùn)輸“原料”數(shù)據(jù)的速度就比較慢,導(dǎo)致CPU的生產(chǎn)效率大打折扣。為了解決這個(gè)問(wèn)題,在CPU與外部存儲(chǔ)器之間,建了一個(gè)“小倉(cāng)庫(kù)”—內(nèi)存。
目前內(nèi)存的分配和回收機(jī)制通常是:CPU運(yùn)行的程序每次需要使用內(nèi)存時(shí),向系統(tǒng)申請(qǐng)一次內(nèi)存(可以稱為內(nèi)存分配請(qǐng)求),系統(tǒng)根據(jù)本次程序運(yùn)行的數(shù)據(jù)量(也可以看成是程序申請(qǐng)獲取的內(nèi)存的大小)分配相匹配的內(nèi)存,程序在該分配的內(nèi)存中運(yùn)行數(shù)據(jù),并在運(yùn)行完畢之后將內(nèi)存交換給系統(tǒng);下次程序運(yùn)行時(shí),系統(tǒng)再根據(jù)上述方式重新分配并回收內(nèi)存。具體的內(nèi)存分配和回收的機(jī)制可參考公開(kāi)號(hào)為CN?102012870A的中國(guó)專利申請(qǐng)。
內(nèi)存是一個(gè)連續(xù)的存儲(chǔ)空間,在進(jìn)行內(nèi)存分配時(shí),內(nèi)存的存儲(chǔ)空間是連續(xù)分配的,但是內(nèi)存回收之后難以形成連續(xù)的存儲(chǔ)空間。由于不同的程序獲取的內(nèi)存的大小不同,因此內(nèi)存回收之后很容易造成內(nèi)存碎片,影響內(nèi)存的使用。另外,系統(tǒng)不停的分配和回收內(nèi)存,還會(huì)影響系統(tǒng)的工作效率,并且影響內(nèi)存的性能。
因此如何減少內(nèi)存碎片,提高系統(tǒng)的工作效率及內(nèi)存的性能成為目前亟待解決的問(wèn)題之一。
發(fā)明內(nèi)容
本發(fā)明解決的問(wèn)題是現(xiàn)有技術(shù)中的內(nèi)存碎片較多,系統(tǒng)工作效率低下,內(nèi)存性能不高的問(wèn)題。
為解決上述問(wèn)題,本發(fā)明的技術(shù)方案提供了一種內(nèi)存分配方法,包括:
比較系統(tǒng)分配參數(shù)和獲得的內(nèi)存分配請(qǐng)求中的需求容量;
若所述需求容量小于或等于所述系統(tǒng)分配參數(shù),則分配第一類內(nèi)存,并為所述分配的第一類內(nèi)存設(shè)置使用狀態(tài);所述第一類內(nèi)存的容量是預(yù)設(shè)的且與所述內(nèi)存分配請(qǐng)求中的需求容量相匹配;
若所述需求容量大于所述系統(tǒng)分配參數(shù),則分配所述需求容量的第二類內(nèi)存,并為分配的第二類內(nèi)存設(shè)置使用狀態(tài)。
可選的,所述分配第一類內(nèi)存包括:
若存在空閑的已分配的第一類內(nèi)存,則分配該空閑的已分配的第一類內(nèi)存;否則從系統(tǒng)內(nèi)存中分配第一類內(nèi)存。
可選的,所述從系統(tǒng)內(nèi)存中分配第一類內(nèi)存包括:每次從所述系統(tǒng)內(nèi)存中分配預(yù)定數(shù)目的等大的第一類內(nèi)存,所述預(yù)定數(shù)目的第一類內(nèi)存以鏈表的形式存儲(chǔ)。
可選的,所述分配所述需求容量的第二類內(nèi)存包括:
若存在空閑的已分配的第二類內(nèi)存,則分配該空閑的已分配的第二類內(nèi)存;否則從系統(tǒng)內(nèi)存中分配第二類內(nèi)存。
可選的,所述分配該空閑的已分配的第二類內(nèi)存包括:若所述需求容量與該空閑的已分配的第二類內(nèi)存的容量的差值大于所述系統(tǒng)分配參數(shù),則按照所述需求容量將該空閑的已分配的第二類內(nèi)存切割成新的第二類內(nèi)存并分配。
可選的,從所述系統(tǒng)內(nèi)存中分配的第二類內(nèi)存以鏈表的形式存儲(chǔ)。
可選的,所述第二類內(nèi)存在鏈表中按照大小排序。
可選的,所述第一類內(nèi)存的容量是預(yù)設(shè)且與所述內(nèi)存分配請(qǐng)求中的需求容量相匹配的包括:將所述需求容量基于預(yù)定字節(jié)向上對(duì)齊確定預(yù)設(shè)且與所述需求容量相匹配的第一類內(nèi)存的容量。
為解決上述問(wèn)題,本發(fā)明的技術(shù)方案還提供了一種內(nèi)存分配裝置,包括:
判斷單元,用以比較系統(tǒng)分配參數(shù)和獲得的內(nèi)存分配請(qǐng)求中的需求容量;
分配單元,配置成在所述判斷單元判斷所述需求容量小于或等于所述系統(tǒng)分配參數(shù)時(shí),分配第一類內(nèi)存,并為所述分配的第一類內(nèi)存設(shè)置使用狀態(tài);所述第一類內(nèi)存的容量是預(yù)設(shè)且與所述需求容量相匹配的;在所述判斷單元判斷所述需求容量大于所述系統(tǒng)分配參數(shù)時(shí),分配所述需求容量的第二類內(nèi)存,并為所述分配的第二類內(nèi)存設(shè)置使用狀態(tài)。
為解決上述問(wèn)題,本發(fā)明的技術(shù)方案還提供了一種內(nèi)存的回收方法,包括:
基于使用完的內(nèi)存的容量,將所述內(nèi)存回收至所述第一類內(nèi)存或第二類內(nèi)存,并重新設(shè)置所述第一類內(nèi)存或第二類內(nèi)存的使用狀態(tài)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
基于內(nèi)存分配請(qǐng)求中的需求容量和系統(tǒng)分配參數(shù)確定本次分配的內(nèi)存是定長(zhǎng)的內(nèi)存還是變長(zhǎng)的內(nèi)存。若是定長(zhǎng)的,則分配第一類內(nèi)存;若是變長(zhǎng)的,則分配第二類內(nèi)存。將定長(zhǎng)和變長(zhǎng)結(jié)合起來(lái)分配內(nèi)存,不僅滿足了程序的需求,而且提高了整個(gè)系統(tǒng)的性能。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海博泰悅臻電子設(shè)備制造有限公司,未經(jīng)上海博泰悅臻電子設(shè)備制造有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201110446783.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





