[發明專利]一種內存分配的處理方法及裝置在審
| 申請號: | 201610116806.6 | 申請日: | 2016-03-02 |
| 公開(公告)號: | CN107153618A | 公開(公告)日: | 2017-09-12 |
| 發明(設計)人: | 歐陽圣 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F12/0871 | 分類號: | G06F12/0871 |
| 代理公司: | 北京三友知識產權代理有限公司11127 | 代理人: | 李輝 |
| 地址: | 英屬開曼*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 分配 處理 方法 裝置 | ||
技術領域
本申請涉及內存管理技術領域,特別涉及一種內存分配的處理方法及裝置。
背景技術
隨著通信技術的發展,人們可以通過在終端與服務器之間建立網絡連接,實現數據、信息的交互傳輸。不僅如此,不同終端之間也可以采用數據傳輸的方式進行交互溝通,人們便可以通過上述傳輸方式建立的互聯網絡獲取所需的信息。
通常情況下,在互聯網絡中,當通訊雙方有數據交互時,需要建立一個連接,數據傳輸完成后,則斷開此連接,即每次連接只完成一項業務的發送,這樣的連接稱為短連接。但是,就不同終端而言,用戶可能在短時間內進行多次通信,如:運行在終端系統中的具有聯網功能的程序或線程,可以向服務器端發起多次訪問請求TCP(Transmission Control Protocol,傳輸控制協議)連接。如果每次通信都是先連接,再傳輸的話,那么數據傳輸的處理速度必將受到嚴重影響。同時,頻繁的短連接創建,需要服務器端不斷監聽,并不斷進行連接確認,不僅增加服務器的工作負擔,而且浪費了網絡帶寬資源。為解決上述TCP短連接的因頻繁建立和斷開鏈路產生的效率問題,可以采用TCP長連接通訊方式代替短連接通訊,TCP長連接可以在一個連接上可以連續發送多個數據包。雖然采用長連接的方式進行通信可以避免短時間內重復的連接請求,但是,長連接一般是由終端建立,每一條長連接可以傳輸大量數據,假設有大量請求連接的情況,服務器需要對外提供大批量的不間斷的進行數據傳輸的長連接。此時,需要一種可以靈活分配內存的方法,可以優化資源分配機制,減輕服務器的負擔。
現有技術中,在長連接通訊過程中,服務器在接收到分配一定大小內存的請求時,可以首先查找內部維護的內存空閑塊表,并且需要根據一定的算法(例如分配最先找到的不小于申請大小的內存塊給請求者等)找到合適大小的空閑內存塊。如果該空閑內存塊過大,還需要切割成已分配的部分和較小的空閑塊。然后服務器更新所述內存空閑塊表,完成一次內存分配。但是,在上述內存分配方法中,容易在分配后的空閑內存塊中生成內存碎片,內存利用率不高,并且,由于長連接通訊過程中需要頻繁地調配內存,但是空閑內存塊的物理地址不連續,服務器在調用過程中需要花費較多的時間搜索可用空閑內存塊,內存調配效率不高。
現有技術中長連接通信的內存分配處理方法在有大量請求連接的情況下服務器需要不 斷的消耗資源進行計算,花費較多的時間搜索可用空閑內存塊,并且容易在分配后的空閑內存塊中生成內存碎片,導致服務器系統內存利用率較低,內存分配效率低下。
發明內容
本申請實施例的目的在于提供一種內存分配的處理方法及裝置,可以減少內存分配的時間,提高系統內存利用率,優化系統內存分配效率。
本申請實施例提供一種內存分配方法及裝置是這樣實現的:
一種內存分配的處理方法,所述方法可以包括:
獲取內存申請信息,判斷申請內存是否小于建立的內存池中內存塊的最大可分配內存;
當判斷所述申請內存大于所述最大可分配內存時,根據所述內存塊數據頭中記錄的大塊內存信息,從大塊內存中分配內存給申請內存;
否則,判斷所述申請內存是否大于當前內存塊的空閑內存,當判斷所述申請內存小于當前內存塊的空閑內存時,判斷當前內存塊的當前剩余空間是否滿足所述申請內存的需求;
若所述當前內存塊的當前剩余空間滿足所述申請內存的需求,從所述當前內存塊的當前剩余空間中分配內存給所述申請內存。
一種內存分配的處理裝置,所述裝置可以包括:
最大內存判斷模塊,用于獲取內存申請信息,判斷申請內存是否小于建立的內存池中內存塊的最大可分配內存;
大塊內存分配模塊,用于當所述最大內存判斷模塊判斷所述申請內存大于所述最大可分配內存時,根據所述內存塊數據頭中記錄的大塊內存信息,從大塊內存中分配內存給申請內存;
剩余空間判斷模塊,用于判斷所述申請內存是否大于當前內存塊的空閑內存,當判斷所述申請內存小于當前內存塊的空閑內存時,判斷當前內存塊的當前剩余空間是否滿足所述申請內存的需求;
剩余空間分配模塊,用于若所述剩余空間判斷模塊判斷當前內存塊的當前剩余空間滿足所述申請內存的需求時,從所述當前內存塊的當前剩余空間中分配內存給所述申請內存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610116806.6/2.html,轉載請聲明來源鉆瓜專利網。





