[發(fā)明專利]一種內(nèi)存池的內(nèi)存塊調(diào)用方法和釋放方法及服務(wù)器在審
| 申請?zhí)枺?/td> | 201611146281.7 | 申請日: | 2016-12-13 |
| 公開(公告)號: | CN106598736A | 公開(公告)日: | 2017-04-26 |
| 發(fā)明(設(shè)計(jì))人: | 蔣曉崗;張明宇 | 申請(專利權(quán))人: | 深圳中科訊聯(lián)科技股份有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 深圳市愛迪森知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙)44341 | 代理人: | 何婷 |
| 地址: | 518067 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 內(nèi)存 調(diào)用 方法 釋放 服務(wù)器 | ||
技術(shù)領(lǐng)域
本發(fā)明實(shí)施方式涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別是涉及一種內(nèi)存池的內(nèi)存塊調(diào)用方法和內(nèi)存塊釋放方法及服務(wù)器。
背景技術(shù)
在計(jì)算機(jī)軟件開發(fā)和應(yīng)用過程中,經(jīng)常會(huì)用到動(dòng)態(tài)申請內(nèi)存與釋放內(nèi)存,當(dāng)頻繁使用軟件時(shí)會(huì)造成大量的內(nèi)存碎片并進(jìn)而降低內(nèi)存分配效率。目前,內(nèi)存池是一種特殊的內(nèi)存管理方式,與常規(guī)的內(nèi)存管理相比較,其特點(diǎn)是每次分配使用的內(nèi)存塊大小是相同的,這種內(nèi)存管理方式具有分配效率高,不會(huì)產(chǎn)生內(nèi)存碎片的優(yōu)點(diǎn),常常應(yīng)用在對內(nèi)存分配效率要求較高,申請內(nèi)存的大小固定的場合。其最主要的目的是如何高效,快速的分配,并且在適當(dāng)?shù)臅r(shí)候釋放和回收內(nèi)存資源。
現(xiàn)有的內(nèi)存池管理方法通常采用鏈表的管理方式,將內(nèi)存塊的地址保存到一個(gè)鏈表里面,應(yīng)用程序申請內(nèi)存時(shí)從鏈表中查找可用內(nèi)存塊的地址,然后調(diào)用對應(yīng)的內(nèi)存塊。這種方法需要逐個(gè)查找鏈表,額外內(nèi)存消耗較多,在處理鏈表結(jié)點(diǎn)連接時(shí)也還有改進(jìn)空間。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:現(xiàn)有內(nèi)存池管理方法,應(yīng)用程序每次申請內(nèi)存時(shí)需要查找整個(gè)鏈表,額外內(nèi)存消耗多,內(nèi)存分配效率低。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,減少額外內(nèi)存消耗,提升內(nèi)存分配效率,本發(fā)明實(shí)施方式采用的一個(gè)技術(shù)方案是:提供一種內(nèi)存池內(nèi)存申請方法,該方法包括:申請內(nèi)存池中的內(nèi)存塊,所述內(nèi)存池初始化時(shí)包括若干個(gè)大小相同的空閑內(nèi)存塊和一個(gè)循環(huán)隊(duì)列,所述循環(huán)隊(duì)列存儲(chǔ)有若干個(gè)與內(nèi)存塊對應(yīng)的內(nèi)存塊地址;從循環(huán)隊(duì)列中取出最先被存入的內(nèi)存塊地址;以及根據(jù)所述取出的內(nèi)存塊地址,調(diào)用對應(yīng)的內(nèi)存塊。
其中,所述從循環(huán)隊(duì)列中取出最先被存入的內(nèi)存塊地址步驟之前,進(jìn)一步包括:判斷循環(huán)隊(duì)列中的內(nèi)存塊地址是否為空;若是,返回空指針。
其中,所述內(nèi)存池中的內(nèi)存塊數(shù)量與循環(huán)隊(duì)列中包含的內(nèi)存塊地址數(shù)量相同。
其中,所述內(nèi)存池初始化時(shí)循環(huán)隊(duì)列中的若干個(gè)內(nèi)存塊地址為連續(xù)的內(nèi)存塊地址。
為解決上述技術(shù)問題,減少額外內(nèi)存消耗,提升內(nèi)存分配效率,本發(fā)明實(shí)施方式采用的另一個(gè)技術(shù)方案是:提供一種內(nèi)存池內(nèi)存釋放方法,包括:釋放內(nèi)存池的內(nèi)存塊,所述內(nèi)存池初始化時(shí)包括若干個(gè)大小相同的空閑內(nèi)存塊和一個(gè)循環(huán)隊(duì)列,所述循環(huán)隊(duì)列存儲(chǔ)有若干個(gè)與內(nèi)存塊對應(yīng)的內(nèi)存塊地址;以及將釋放內(nèi)存塊對應(yīng)的內(nèi)存塊地址放入所述循環(huán)隊(duì)列的尾部。
其中,所述內(nèi)存池中的內(nèi)存塊數(shù)量與循環(huán)隊(duì)列中包含的內(nèi)存塊地址數(shù)量相同。
其中,所述內(nèi)存池初始化時(shí)循環(huán)隊(duì)列中的若干個(gè)內(nèi)存塊地址為連續(xù)的內(nèi)存塊地址。
為解決上述技術(shù)問題,減少額外內(nèi)存消耗,提升內(nèi)存分配效率,本發(fā)明實(shí)施方式采用的另一個(gè)技術(shù)方案是:提供一種服務(wù)器,包括:應(yīng)用程序運(yùn)行單元和內(nèi)存池,所述應(yīng)用程序運(yùn)行單元,用于向所述內(nèi)存池發(fā)起申請內(nèi)存塊請求;所述內(nèi)存池初始化時(shí)包括若干個(gè)大小相同的空閑內(nèi)存塊和一個(gè)循環(huán)隊(duì)列,所述循環(huán)隊(duì)列存儲(chǔ)有若干個(gè)與內(nèi)存塊對應(yīng)的內(nèi)存塊地址;所述內(nèi)存池用于接收所述申請內(nèi)存塊請求,從循環(huán)隊(duì)列中取出最先被存入的內(nèi)存塊地址;以及根據(jù)所述取出的內(nèi)存塊地址,調(diào)用對應(yīng)的內(nèi)存塊。
其中,所述內(nèi)存池中的內(nèi)存塊數(shù)量與循環(huán)隊(duì)列中包含的內(nèi)存塊地址數(shù)量相同。
其中,所述內(nèi)存池初始化時(shí)循環(huán)隊(duì)列中的若干個(gè)內(nèi)存塊地址為連續(xù)的內(nèi)存塊地址。
本發(fā)明實(shí)施方式的有益效果是:內(nèi)存池中的N個(gè)內(nèi)存塊,使用一個(gè)循環(huán)隊(duì)列管理,申請內(nèi)存塊時(shí),按照循環(huán)隊(duì)列先入先出的原則,直接返回最先放入的內(nèi)存塊地址,調(diào)用對應(yīng)的內(nèi)存塊,省去了現(xiàn)有技術(shù)查找鏈表的過程;此外,釋放內(nèi)存時(shí),直接將內(nèi)存塊地址放入循環(huán)隊(duì)列的尾部,無需判斷隊(duì)列是否已滿,循環(huán)列隊(duì)本身不需要消耗過多的性能。因此,可以明顯減少額外的內(nèi)存開銷,提升內(nèi)存分配效率。
附圖說明
圖1是本發(fā)明實(shí)施方式提供的一種內(nèi)存池的組成結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施方式提供的一種內(nèi)存池初始化方法的流程示意圖;
圖3是本發(fā)明實(shí)施方式提供的一種內(nèi)存池的內(nèi)存塊調(diào)用方法的流程示意圖;
圖4是本發(fā)明實(shí)施方式提供的一種內(nèi)存池的內(nèi)存塊釋放方法的流程示意圖;
圖5是本發(fā)明實(shí)施方式提供的一種服務(wù)器的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳中科訊聯(lián)科技股份有限公司,未經(jīng)深圳中科訊聯(lián)科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611146281.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 身份驗(yàn)證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種微服務(wù)請求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





