[發明專利]內存分配方法、裝置、計算機設備和計算機可讀存儲介質在審
| 申請號: | 202210082263.6 | 申請日: | 2022-01-24 |
| 公開(公告)號: | CN114490060A | 公開(公告)日: | 2022-05-13 |
| 發明(設計)人: | 王耿;曹崇瑞;顧費勇;胡志敏 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F12/02 |
| 代理公司: | 北京超凡宏宇專利代理事務所(特殊普通合伙) 11463 | 代理人: | 高燕 |
| 地址: | 310052 浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 分配 方法 裝置 計算機 設備 可讀 存儲 介質 | ||
1.一種內存分配方法,其特征在于,包括:
根據待存儲數據的長度確定待分配內存的目標等級;
根據所述待分配內存的目標等級,確定與所述目標等級對應的目標鏈表,所述目標鏈表包括至少一個指針和鏈表頭,各指針分別指向一內存塊,各指針用于指示所述目標鏈表中的各內存塊的地址,所述鏈表頭為各指針中的第一個指針,所述鏈表頭用于指向所述目標鏈表中的各內存塊中的首個空內存塊;
根據所述鏈表頭確定目標內存塊;
根據內存分配指令將所述待存儲數據存儲至所述目標內存塊,并將所述鏈表頭指向所述目標內存塊之后的首個空內存塊。
2.如權利要求1所述的內存分配方法,其特征在于,所述根據內存分配指令將所述待存儲數據存儲至所述鏈表頭指向的目標內存塊,包括:
根據所述內存分配指令將所述待存儲數據的長度存儲至所述目標內存塊的起始位置開始的預設長度的內存單元中;
將所述待存儲數據存儲至所述預設長度的內存單元之后的內存單元中。
3.如權利要求1所述的內存分配方法,其特征在于,所述根據所述待分配內存的目標等級,確定所述目標等級對應的目標鏈表之前,還包括:
根據所述待分配內存的目標等級,確定所述目標等級對應的目標內存塊容量;
根據所述目標內存塊容量,從內存中確定與所述目標內存塊容量匹配的至少一個空內存塊;
建立所述目標等級對應的目標鏈表,將所述目標鏈表的各指針分別指向與所述目標內存塊容量匹配的各空內存塊,并且,將所述目標鏈表的鏈表頭指向與所述目標內存塊容量匹配的各空內存塊中的首個空內存塊。
4.如權利要求3所述的內存分配方法,其特征在于,所述根據待存儲數據的長度確定待分配內存的目標等級,包括:
對所述長度的值與預設長度值進行求和,得到待分配值;
根據所述待分配值和內存塊鏈表的階梯值,確定所述待分配內存的目標等級,其中,所述階梯值為兩個相鄰等級的所述內存塊鏈表的最大存儲閾值的差值。
5.如權利要求4所述的內存分配方法,其特征在于,所述根據所述待分配值和內存塊鏈表的階梯值,確定所述待分配內存的目標等級,包括:
確定所述待分配值與所述階梯值的目標比值;
將所述目標比值對應的內存等級作為所述待分配內存的目標等級。
6.如權利要求5所述的內存分配方法,其特征在于,所述確定所述待分配值與所述階梯值的目標比值,包括:
若所述待分配值與所述階梯值的初始比值為非整數,則對所述初始比值取整,得到所述目標比值。
7.如權利要求1-6任一項所述的內存分配方法,其特征在于,所述根據內存分配指令將所述待存儲數據存儲至所述目標內存塊之后,所述方法還包括:
根據針對所述目標內存塊的內存釋放指令,刪除所述目標內存塊中所存儲的數據;
更新所述目標鏈表,以使得所述目標內存塊作為空內存塊插入所述目標鏈表中。
8.如權利要求7所述的內存分配方法,其特征在于,所述更新所述目標鏈表,包括:
將所述目標鏈表的鏈表頭指向所述目標內存塊。
9.如權利要求1-6任一項所述的內存分配方法,其特征在于,所述方法還包括:
確定所述目標鏈表中的空內存塊的個數;
若所述目標鏈表中的空內存塊的個數大于或等于預設閾值,則釋放依次排列在所述目標鏈表中的至少一個空內存塊。
10.如權利要求1-6任一項所述的內存分配方法,其特征在于,所述方法還包括:
若所述目標鏈表為空,則開辟多個內存塊,并將所述多個內存塊中的一個內存塊作為所述目標內存塊;
將所述多個內存塊中的其它內存塊插入所述目標鏈表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210082263.6/1.html,轉載請聲明來源鉆瓜專利網。





