[發明專利]高效地標記帶有大引用集的對象有效
| 申請號: | 200980114688.3 | 申請日: | 2009-03-06 |
| 公開(公告)號: | CN102016788A | 公開(公告)日: | 2011-04-13 |
| 發明(設計)人: | P·H·杜斯德;M·Z·斯蒂芬斯 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F9/00 | 分類號: | G06F9/00;G06F9/44;G06F3/03;G06F3/00 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 蔡悅;錢靜芳 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 高效 標記 帶有 引用 對象 | ||
1.一種在包括實現用于回收存儲器以供新對象使用的無用信息收集功能的應用程序代碼的計算環境中的方法,其中所述無用信息收集功能包括將對象引用壓到標記棧上,從而使得所述標記棧上所引用的對象可以被標記以便阻止用于被標記的對象的存儲器被回收以供其他對象實例使用,所述方法按照允許對帶有大量對象引用的對象所引用的對象的有限數量的引用被添加到所述標記棧的方式將對對象的引用添加到所述標記棧,所述方法包括:
(a)訪問對象(302);
(b)判定應該結合指針使用所述標記棧中對所述對象本身的引用或基于該引用的條目來將所述對象中的引用添加到所述標記棧,所述指針用于跟蹤所述對象中的哪些引用已經被壓到所述標記棧上,所述標記棧被配置成允許標記被壓到所述標記棧上的對象來阻止用于所述標記棧上所引用的對象的存儲器被回收以供其他對象使用(304);
(c)訪問所述標記棧上對所述對象的引用或基于該引用的條目(306);
(d)初始化指針(308);
(e)將對所述對象所引用的一個或多個其他對象的一個或多個引用壓到所述標記棧上(312);以及
(f)更新所述指針(318)。
2.如權利要求1所述的方法,其特征在于,執行動作(e)以便將預定數量的引用添加到所述標記棧。
3.如權利要求2所述的方法,其特征在于,還包括在所有預定數量的引用已經被添加到所述標記棧中之后,然后處理所述預定引用中的每一引用并從所述標記棧中彈出所述預定引用中的每一引用,直到所述標記棧中對所述對象本身的引用或基于該引用的條目處在要從所述標記棧讀取的位置中。
4.如權利要求3所述的方法,其特征在于,一旦所述標記棧中對所述對象本身的引用或基于該引用的條目處在要從所述標記棧讀取的位置中,執行動作(e)以便再次將所述預定數量的引用添加到所述標記棧。
5.如權利要求3所述的方法,其特征在于,還包括:
判定對應于所述對象中的所有引用的條目已經被添加到所述標記棧;以及
結果,從所述標記棧中彈出所述標記棧中對所述對象本身的引用或基于該引用的條目。
6.如權利要求2所述的方法,其特征在于,所述預定次數少于或等于10次。
7.如權利要求1所述的方法,其特征在于,還包括執行動作(e)直到所述標記棧滿。
8.如權利要求1所述的方法,其特征在于,所述指針隨對所述對象的引用或基于該引用的條目一起被包括在所述標記棧中。
9.如權利要求1所述的方法,其特征在于,訪問所述標記棧上對所述對象的引用或基于該引用的條目包括在所述標記棧中設置對應于所述標記棧中對所述對象的引用或基于該引用的條目的標志來指示應該結合對所述對象的引用或基于該引用的條目來引用指針以將來自所述對象的引用添加到所述標記棧。
10.如權利要求9所述的方法,其特征在于,所述標志包括導致基于對所述對象的引用的條目引用奇數引用的、對所述對象的引用的改變。
11.如權利要求1所述的方法,其特征在于,判定應該結合指針使用所述標記棧中對所述對象本身的引用或基于該引用的條目將所述對象中的引用添加到標記棧包括判定所述對象包括引用的數組。
12.如權利要求1所述的方法,其特征在于,判定應該結合指針使用所述標記棧中對所述對象本身的引用或基于該引用的條目將所述對象中的引用添加到標記棧包括判定所述對象包括至少預定數量的可以獲得來自給定引用站點的下一引用的引用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/200980114688.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:煨餅
- 下一篇:蒽衍生物、發光元件、發光器件及電子設備





