[發明專利]在循環圖中管理對象生命期有效
| 申請號: | 201210354921.9 | 申請日: | 2012-09-10 |
| 公開(公告)號: | CN102999328A | 公開(公告)日: | 2013-03-27 |
| 發明(設計)人: | M·J·希爾伯格;R·克里什納斯瓦米 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 董寧;汪揚 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 循環 管理 對象 生命 | ||
背景技術
計算機系統和相關技術影響社會的許多方面。事實上,計算機系統處理信息的能力已經改變了我們生活和工作的方式。計算機系統現在普遍執行大量任務(例如,文字處理、日程、記賬等),這些任務在計算機系統出現之前是手工執行的。最近,計算機系統已經相互耦合以及耦合到其他電子設備,形成有線和無線計算機網絡,通過這些網絡計算機系統和其他電子設備可以傳輸電子數據。相應地,許多計算任務的執行被分布在許多不同的計算機系統和/或許多不同的計算環境中。
一些編程環境(例如C++)使用引用計數作為確定對象何時不再被引用并從而可以釋放用于存儲對象的內存的機制。如果對象不能直接被引用,通過將對象從內存移除,從而管理對象的生命期。當一個對象引用另一對象時,增加被引用對象的引用計數。當一個對象引用另一對象時,該對象的引用計數減少。當一個對象的引用計數達到零時,它是不可訪問的,并且可以將其毀滅。
然而,引用計數相對不復雜,可能導致內存泄露(即,未使用的和有可能不可訪問的對象繼續消耗內存)。例如,可能兩個對象相互引用但卻未被任何其他對象引用,產生循環。當出現循環時,引用計數可能無法確定這兩個對象僅僅是相互引用而卻沒有被其他引用。因此,這兩個對象的內存未被釋放,引起內存泄露。
其他編程環境(例如C#)使用垃圾收集作為確定對象何時不再被引用并從而可以釋放用于存儲對象的內存的機制。垃圾收集通過查找不能被直接或者間接引用的對象并且移除它們來管理對象的生命期。垃圾收集通過考慮到間接引用而解決了與循環相關的問題。
一些編程環境利用引用計數對象和垃圾收集對象。例如,開發者可能希望利用使用不同對象生命期管理技術的不同編程語言。在這些混合的編程環境中,被引用計數對象可以引用垃圾收集對象和/或垃圾收集對象可以引用計數對象。然而,垃圾收集系統可能無法通過被引用計數對象跟蹤間接引用。因此,在混合的編程環境中仍然可能出現內存泄露。
發明內容
本發明擴展到在循環圖中管理對象生命期的方法、系統和計算機程序產品。本發明的實施例包括例如從混合不同資源收回技術的對象圖中準備收回以及收回分配的系統資源。在一些實施例中,計算機系統確定要實施垃圾收集。響應于確定要實施垃圾收集,檢測根據垃圾收集管理的對象與根據引用計數管理的對象之間的引用。此外對任何檢測到的引用確定引用類型(例如直接、間接、標準、被跟蹤、弱化等)。實施垃圾收集以確定是否可以收回任何分配的系統資源。作為系統資源收回確定的一部分,垃圾收集考慮根據垃圾收集管理的對象與根據引用計數管理的對象之間引用和引用類型。
一般而言,對象可以請求創建和/或移除到和/或來自其他對象的引用。例如,當要收集對象時(例如為了收回系統資源),可以在要被收集的對象從圖中移除之前通知從要被收集的對象引用的其他對象。響應于該通知,被引用對象可以斷開從該被引用對象到再一對象的弱化引用。垃圾收集然后可以繼續來確定是否可以收回任何另外分配的系統資源。繼續的垃圾收集考慮斷開從另一對象到再一對象的弱化引用。
提供本發明內容來以簡化的形式介紹一系列概念,這些概念下面在具體實施方式中進一步描述。本發明內容并不意圖標識所要求保護的主題的關鍵特征或基本特征,也不意圖用作幫助確定所要求保護的主題的范圍。
本發明的額外特征和優點將會在下面的描述中闡述,并且通過描述而部分地變得明顯,或者可以通過本發明的實踐而習得。本發明的特征和優點可以通過所附權利要求中特別指出的裝置和組合而實現和獲得。本發明的這些和其他特征通過下面描述和所附權利要求將變得充分清楚,或者可以通過下面闡述的本發明的實踐習得。
附圖說明
為了描述可以獲得本發明的上述和其他優點和特征的方式,將參照附圖中所示的其特定實施例來呈現對上面簡要描述的本發明的更具體描述。理解這些附圖僅僅描繪本發明的典型實施例,因此不應當被認為是限制其范圍,將通過使用附圖以額外的特性和細節描述和說明本發明,在附圖中:
圖1A示出促進在循環圖中管理對象生命期的示例計算機架構。
圖1B示出示例循環圖。
圖1C示出示例循環圖。
圖1D示出示例循環圖。
圖1E示出示例循環圖。
圖1F示出示例循環圖。
圖2示出用于同步來自被計數對象圖的引用信息與被垃圾收集對象圖以準備嘗試收回系統資源的示例方法的流程圖。
圖3示出用于確定如何引用被引用計數對象以準備嘗試收回系統資源的示例方法的流程圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210354921.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:計頻器
- 下一篇:一種電動叉車屬具的控制保護裝置





