[發明專利]內存管理方法、裝置、設備及計算機可讀存儲介質有效
| 申請號: | 202011215098.4 | 申請日: | 2020-11-04 |
| 公開(公告)號: | CN112214329B | 公開(公告)日: | 2023-09-22 |
| 發明(設計)人: | 葛亞駿 | 申請(專利權)人: | 騰訊科技(上海)有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京派特恩知識產權代理有限公司 11270 | 代理人: | 李昂;張穎玲 |
| 地址: | 201200 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 管理 方法 裝置 設備 計算機 可讀 存儲 介質 | ||
1.一種內存管理方法,其特征在于,包括:
獲取進程請求的待分配共享內存類型;
從內存中預先創建的共享內存片內,獲取與所述待分配共享內存類型對應的共享內存池的管理區域地址;
根據所述管理區域地址,從所述共享內存片內,獲取所述共享內存池的內存頁配置信息;
根據所述內存頁配置信息,確定所述共享內存池的當前分配頁;
在所述當前分配頁中的共享內存單元分配完的情況下,根據所述內存頁配置信息,從所述內存中申請新的內存頁作為所述共享內存池的新的當前分配頁;
在所述當前分配頁中為所述進程分配共享內存單元。
2.根據權利要求1所述的方法,其特征在于,所述根據所述內存頁配置信息,從所述內存中申請新的內存頁作為所述共享內存池的新的當前分配頁,包括:
在所述共享內存池中查找可分配內存頁;
在所述共享內存池中不存在可分配內存頁的情況下,根據所述內存頁配置信息,從所述內存中申請新的內存頁;
將所述新的內存頁確定為所述共享內存池的新的當前分配頁;
在所述共享內存池中存在可分配內存頁的情況下,將所述可分配內存頁確定為新的當前分配頁。
3.根據權利要求1所述的方法,其特征在于,所述內存頁配置信息中包括所述共享內存池的內存增長模式;所述根據所述內存頁配置信息,從所述內存中申請新的內存頁作為所述共享內存池的新的當前分配頁,包括:
根據所述共享內存池的內存增長模式,確定當前內存增長量;
從所述內存中申請大小為所述當前內存增長量的新的內存頁;
將所述新的內存頁確定為所述共享內存池的新的當前分配頁。
4.根據權利要求1至3中任一項所述的方法,其特征在于,所述方法還包括:
獲取進程發送的待釋放的共享內存單元的標識;
根據所述標識,釋放與所述標識對應的共享內存單元;
根據所述標識,確定所述共享內存單元所屬的內存頁和所述內存頁所屬的共享內存池;
在所述內存頁中的各共享內存單元均未被使用,且所述內存頁不是所述共享內存池的當前分配頁的情況下,釋放所述內存頁。
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
在所述內存頁中的各共享內存單元均未被使用,且所述內存頁為所述共享內存池的當前分配頁的情況下,查找所述內存頁的前一頁;
在所述前一頁的共享內存單元使用率小于使用率閾值的情況下,釋放所述當前分配頁;
從所述內存頁依次向前查找所述共享內存池中的各內存頁,將查找到的第一個不為空的內存頁確定為所述共享內存池的新的當前分配頁。
6.一種內存管理裝置,其特征在于,包括:
第一獲取模塊,用于獲取進程請求的待分配共享內存類型;
第二獲取模塊,用于從內存中預先創建的共享內存片內,獲取與所述待分配共享內存類型對應的共享內存池的管理區域地址;
第三獲取模塊,用于根據所述管理區域地址,從所述共享內存片內,獲取所述共享內存池的內存頁配置信息;
分配模塊,用于根據所述內存頁配置信息,確定所述共享內存池的當前分配頁;在所述當前分配頁中的共享內存單元分配完的情況下,根據所述內存頁配置信息,從所述內存中申請新的內存頁作為所述共享內存池的新的當前分配頁;在所述當前分配頁中為所述進程分配共享內存單元。
7.一種內存管理設備,其特征在于,包括:
存儲器,用于存儲可執行指令;
處理器,用于執行所述存儲器中存儲的可執行指令時,實現權利要求1至5任一項所述的方法。
8.一種計算機可讀存儲介質,其特征在于,存儲有可執行指令,用于被處理器執行時,實現權利要求1至5任一項所述的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(上海)有限公司,未經騰訊科技(上海)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011215098.4/1.html,轉載請聲明來源鉆瓜專利網。





