[發明專利]內存處理方法、裝置、電子設備及存儲介質在審
| 申請號: | 202111481083.7 | 申請日: | 2021-12-06 |
| 公開(公告)號: | CN114296733A | 公開(公告)日: | 2022-04-08 |
| 發明(設計)人: | 劉思 | 申請(專利權)人: | 北京達佳互聯信息技術有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F9/50 |
| 代理公司: | 北京中博世達專利商標代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 100085 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 處理 方法 裝置 電子設備 存儲 介質 | ||
1.一種內存處理方法,其特征在于,包括:
響應于內存回收算法獲取請求,確定當前內存回收算法為基于自動引用計數的回收算法或者基于追蹤的回收算法中的一種回收算法;所述基于自動引用計數的回收算法與所述基于追蹤的回收算法采用同一種程序設計語言設計,所述基于自動引用計數的回收算法通過引用計數實現對內存塊的回收處理;所述基于追蹤的回收算法通過確定每個內存塊的占用狀態實現對內存塊的回收處理;
響應于內存回收算法切換請求,將所述當前內存回收算法切換為所述基于自動引用計數的回收算法或者所述基于追蹤的回收算法中的另一種回收算法;
根據切換后的內存回收算法處理被占用的內存塊。
2.根據權利要求1所述的內存處理方法,其特征在于,當所述切換后的內存回收算法為所述基于自動引用計數的回收算法時,所述基于自動引用計數的回收算法包括第一引用指示,所述第一引用指示用于指示目標內存塊被引用的引用次數;所述根據切換后的內存回收算法處理被占用的內存塊,包括:
在每新增一個對所述目標內存塊的第一引用的情況下,對所述第一引用指示的引用次數加1;所述目標內存塊為程序運行中建立的內存對象,用于存儲所述程序的運算數據;
在每解除一個對所述目標內存塊的所述第一引用的情況下,對所述第一引用指示的引用次數減1;
在所述第一引用指示的引用次數為0的情況下,釋放被所述目標內存塊占用的內存。
3.根據權利要求2所述的內存處理方法,其特征在于,所述基于自動引用計數的回收算法還包括第二引用指示,所述第二引用指示用于指示被引用的所述目標內存塊的地址;所述根據切換后的內存回收算法處理被占用的內存塊,包括:
在每新增一個對所述目標內存塊的第二引用的情況下,對所述第二引用指示的引用次數加1;
在每解除一個對所述目標內存塊的所述第二引用的情況下,對所述第二引用指示的引用次數減1;
在所述第二引用指示的引用次數為0的情況下,釋放所述第二引用指示對應的地址內存塊占用的內存;所述地址內存塊用于存儲所述第二引用指示指向的內存塊地址。
4.根據權利要求3所述的內存處理方法,其特征在于,當所述切換后的內存回收算法為所述基于追蹤的回收算法時,所述根據切換后的內存回收算法處理被占用的內存塊,包括:
遍歷所有被占用的所述內存塊;
在第一目標內存塊存活的情況下,對所述第一目標內存塊進行標記;所述第一目標內存塊為所有被占用的所述內存塊內的任意內存塊;
在所有被占用的所述內存塊遍歷結束后,釋放未被標記的第二目標內存塊所占用的內存;所述第二目標內存塊為所有被占用的所述內存塊內未被標記的內存塊。
5.根據權利要求1所述的內存處理方法,其特征在于,當所述當前內存回收算法為所述基于追蹤的回收算法,所述切換后的內存回收算法為所述基于自動引用計數的回收算法時,所述響應于內存回收算法切換請求,將所述當前內存回收算法切換為所述基于自動引用計數的回收算法或者所述基于追蹤的回收算法中的另一種回收算法,包括:
在所有被占用的所述內存塊之間不存在循環引用的情況下,將所述基于追蹤的回收算法切換為所述基于自動引用計數的回收算法。
6.根據權利要求5所述的內存處理方法,其特征在于,還包括:
在所有被占用的所述內存塊之間存在循環引用的情況下,確定告警消息;所述告警消息用于提示所述目標內存塊存在內存泄漏的風險。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京達佳互聯信息技術有限公司,未經北京達佳互聯信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111481083.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種海管封頭通過托管架的方法
- 下一篇:文本數據處理方法、設備和存儲介質





