[發明專利]一種內存管理方法及裝置在審
申請號: | 201910229665.2 | 申請日: | 2019-03-25 |
公開(公告)號: | CN111736980A | 公開(公告)日: | 2020-10-02 |
發明(設計)人: | 施慧;丁陽;張魁;王成源;王超 | 申請(專利權)人: | 華為技術有限公司 |
主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/455 |
代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 馮艷蓮 |
地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
權利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關鍵詞: | 一種 內存 管理 方法 裝置 | ||
一種內存管理方法及裝置,用以回收引用環中的對象所占用的內存。在使用該方法進行垃圾回收時,首先獲取存儲的第一引用環的信息,其中第一引用環為由多個對象形成的循環引用,第一引用環的信息包括第一引用環中的多個對象以及多個對象之間的引用關系;其次確定存在第二引用環,第二引用環的信息與所述第一引用環的信息匹配,第二引用環的信息包括第二引用環中的多個對象以及多個對象之間的引用關系;之后回收第二引用環中的多個對象所占用的內存。通過匹配引用環的信息的方式,實現對引用環的回收過程,可以避免由于無法回收引用環而導致的內存資源浪費的問題。
技術領域
本申請涉及計算機技術領域,尤其涉及一種內存管理方法及裝置等。
背景技術
垃圾回收是計算機技術中的一種用于對計算機內存進行自動管理的機制,其主要思想是:應用程序在計算機上運行時,會存在該應用程序中的一個對象引用另一個對象(該對象也可以稱為內存儲對象或者節點)的情況,而每個對象會占用計算機上的內存。若某個對象已經不再需要,也就是說,該對象不被其他任何一個對象引用,則該對象就應該予以釋放,使得該對象占用的內存可以被其他對象使用,達到自動回收內存資源的效果。
目前,一種常用的用于實現垃圾回收的技術方案是引用計數(referencecounting,RC)算法。RC算法為每個對象維護一個引用計數值,當有應用程序中的對象1引用對象2時,則該對象2的引用計數就加1,當對象1不再引用對象2時,則對象2的引用計數減1。當對象2的引用計數值為0時,則對象2所占用的內存就會被底層的分配器回收。
然而,使用面向對象的編程語言實現的應用程序中可能會存在引用環的情況。請參考圖1,在圖1中,對象A引用對象B,對象B引用對象C,對象C引用對象A,從而對象A、對象B以及對象C構成了引用環。由于在圖1所示的引用環中,各個對象之間相互引用,因此,該引用環中的各個對象的引用計數值最小為1,無法變為0,從而導致該引用環中的每個對象所占用的內存資源均無法回收,造成內存資源的浪費。
發明內容
本申請實施例提供一種內存管理方法及裝置,用以回收引用環中的對象所占用的內存資源。
第一方面,本申請提供了一種內存管理方法,在該方法中,首先獲取存儲的第一引用環的信息,第一引用環為由多個對象形成的循環引用,第一引用環的信息包括第一引用環中的多個對象以及多個對象之間的引用關系。引用環(reference cycle)還可以稱為循環引用,可用于表示多個對象的循環引用。例如,對象A引用對象B,對象B引用對象C,對象C引用對象A,對象A、B、C三個對象形成了一個循環引用,可用引用環描述將該三個對象形成的循環引用。或者,對象A引用對象B,對象B引用對象A,則對象A和對象B形成了一個循環引用。其中,第一引用環為不存在外部引用的引用環,外部引用表示除第一引用環中的對象之外的對象引用第一引用環中的任一對象。
然后,若確定存在第二引用環,且第二引用環的信息與所述第一引用環的信息匹配,第二引用環的信息包括所述第二引用環中的多個對象以及多個對象之間的引用關系,則回收所述第二引用環中的多個對象所占用的內存。例如,對象A引用對象B,則可以稱為對象B為對象A直接引用的對象;對象A引用對象B,對象B引用對象C,則可以稱為對象C為對象A間接引用的對象,對象B可以稱為中間對象。處于間接引用關系的兩個對象之間可以有至少一個中間對象,例如,對象A引用兌現B,對象B引用對象C,對象C引用對象D,則對象D也可以稱為對象A間接引用的對象。可將第二引用環中的多個對象可以為下面描述的第一對象和一個或多個第二對象形成的多個對象。
在上述技術方案中,通過使用第一引用環與第二引用環進行匹配,確定存在多個對象形成了第二引用環,則回收形成該第二引用環中的對象的內存資源,實現了回收引用環的效果,可以避免由于無法回收引用環而導致的內存資源浪費的問題。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910229665.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種通信方法及設備
- 下一篇:一種大閘蟹的飼養飼料及其制作方法