[發明專利]一種基于tcmalloc和內存預分配的內存管理碎片改善方法在審
| 申請號: | 202011607548.4 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112612724A | 公開(公告)日: | 2021-04-06 |
| 發明(設計)人: | 趙偉;郭鵬;李連成;云亞嬌 | 申請(專利權)人: | 天津南大通用數據技術股份有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 天津企興智財知識產權代理有限公司 12226 | 代理人: | 李彥彥 |
| 地址: | 300384 天津市濱海新區高新區*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 tcmalloc 內存 分配 管理 碎片 改善 方法 | ||
本發明創造提供了一種基于tcmalloc和內存預分配的內存管理碎片改善方法,包括:S1、讀取釋放前內存的一個地址指針;S2、判斷是否獲取成功,獲取成功則進行步驟S3,否則進行步驟S4;S3、將前一個內存從空閑鏈表中刪除后,與當前內存地址合并后進行步驟S4;S4、讀取釋放內存的后一個地址指針;S5、判斷是否獲取成功,獲取成功則進行步驟S6,否則進行步驟S7;S6、將后一個內存從空閑鏈表中刪除,與當前內存地址合并后進行步驟S7;S7、將合并后的內存存入空閑鏈表,合并結束。本發明創造有益效果:一種基于tcmalloc和內存預分配的內存管理碎片改善方法,通過實施該方法,可以合并地址連續的空閑內存,減少內存碎片,提升內存使用效率。
技術領域
本發明創造屬于數據庫領域,尤其是涉及一種基于tcmalloc和內存預分配的內存管理碎片改善方法。
背景技術
tcmalloc全稱為Thread-Cathing Malloc,即線程緩存的malloc,是gperftools的一部分,用于實現高效的多線程內存管理,以替代系統的內存分配相關函數。在一些基于C++開發的數據庫及其它服務中,為了提高內存使用效率,采用了大塊內存預分配的機制,即內存池,避免了反復的執行malloc/free、new/delete等操作,并引入了tcmalloc的內存管理功能模塊,進一步提升了內存使用效率。
但是隨著并發處理和業務積累,根據熵增原理模型,由于內存使用逐步增大并細化,內存池中的內存會逐漸碎片化,可用的大塊內存會越來越少,在一些極端的情況下,即使內存總空閑量遠遠大于單次申請量,但是卻由龐大的內存碎片組成,并不滿足實際需求,進而導致內存申請失敗,嚴重的則導致業務申請失敗甚至服務宕機。
發明創造內容
有鑒于此,本發明創造旨在提出一種基于tcmalloc和內存預分配的內存管理碎片改善方法,以解決上述問題中的不足之處。
為達到上述目的,本發明創造的技術方案是這樣實現的:
第一方面本發明公開了一種基于tcmalloc和內存預分配的內存管理碎片改善方法,其特征在于:應用層進行內存釋放,將內存返回給內存池后被釋放的內存進行內存合并;
執行所述內存合并的方法包括:
S1、讀取釋放前內存的一個地址指針;
S2、判斷是否獲取成功,獲取成功則進行步驟S3,否則進行步驟S4;
S3、將前一個內存從空閑鏈表中刪除后,與當前內存地址合并后進行步驟S4;
S4、讀取釋放內存的后一個地址指針;
S5、判斷是否獲取成功,獲取成功則進行步驟S6,否則進行步驟S7;
S6、將后一個內存從空閑鏈表中刪除,與當前內存地址合并后進行步驟S7;
S7、將合并后的內存存入空閑鏈表,合并結束。
進一步的,進行內存管理時,引入的tcmalloc方法,在使用span-page管理空閑內存時,內部采用normal和returned雙鏈表形式,原有returned鏈表用于將之前申請的內存按照一定的頻率和機制釋放回系統中,配置的span及其page存留在returned中,將整體的空閑span分布在normal和returned兩個鏈表中,所述normal表示持有未釋放的待用內存,returned表示實際內存已釋放回系統。
第二方面本發明公開了一種電子設備,包括處理器以及與處理器通信連接,且用于存儲所述處理器可執行指令的存儲器,所述處理器用于執行上述第一方面所述的一種基于tcmalloc和內存預分配的內存管理碎片改善方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津南大通用數據技術股份有限公司,未經天津南大通用數據技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011607548.4/2.html,轉載請聲明來源鉆瓜專利網。





