[发明专利]保守垃圾收集方法和存储器管理设备有效
| 申请号: | 201210086589.2 | 申请日: | 2012-03-28 |
| 公开(公告)号: | CN102736984B | 公开(公告)日: | 2017-03-01 |
| 发明(设计)人: | S·卢科;C·C-C·曼 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/38 |
| 代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 罗婷婷 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 保守 垃圾 收集 方法 存储器 管理 设备 | ||
1.一种方法,包括:
在脚本的执行期间生成(600)各对象的堆;
跟踪(610)包括在所述脚本的未执行部分中的各脚本对象到所述堆上的相应存储器位置的集合;
与所述脚本的执行并发地标记(620)所述堆的至少一部分,其中经标记的堆包括所述脚本的未执行部分可到达的可到达对象,并且其中经标记的堆还包括所述脚本的未执行部分不可到达的不可到达对象;以及
释放(630)分配给所述不可到达对象的存储器,其中所述释放基于所述标记并且与所述脚本的执行并发地执行。
2.如权利要求1所述的方法,其特征在于,所述标记(620)包括标记所述可到达对象。
3.如权利要求1所述的方法,其特征在于,所述标记(620)包括标记所述不可到达对象。
4.如权利要求1所述的方法,其特征在于,所述释放(630)包括将所述可到达对象分别保存在所述堆的原始存储位置中。
5.如权利要求4所述的方法,其特征在于,所述保存包括根据所述堆内的各边界的固定集合来维护堆对象的分隔。
6.如权利要求1所述的方法,其特征在于,还包括执行所述脚本。
7.如权利要求6所述的方法,其特征在于,所述执行包括编译java脚本。
8.如权利要求6所述的方法,其特征在于,所述执行包括修改文档对象模型。
9.一种存储器管理设备,包括:
具有存储在其上的计算机可执行组件的存储器;以及
通信地耦合到所述存储器的处理器,所述处理器被配置成执行所述计算机可执行组件,所述计算机可执行组件包括:
堆组件(530),它被配置成在脚本的执行期间生成各对象的堆;
跟踪组件(540),它被配置成跟踪包括在所述脚本的未执行部分中的各脚本对象到所述堆上的相应存储器位置的集合;
标记组件(550),它被配置成与所述脚本的执行并发地标记所述堆的至少一部分,其中经标记的堆包括所述脚本的未执行部分可到达的可到达对象,并且其中所述经标记的堆还包括所述脚本的未执行部分不可到达的不可到达对象;以及
回收组件(560),它被配置成根据所述经标记的堆释放分配给所述不可到达对象的存储器,其中所述回收组件还被配置成与所述脚本的执行并发地释放所述存储器。
10.如权利要求9所述的存储器管理设备,其特征在于,所述标记组件(550)被配置成仅标记所述可到达对象或所述不可到达对象中的一个。
11.如权利要求9所述的存储器管理设备,其特征在于,所述回收组件(560)被配置成在释放分配给所述不可到达对象的存储器的整个部分之前先回收分配给所述不可到达对象的存储器的一部分。
12.如权利要求9所述的存储器管理设备,其特征在于,所述回收组件(560)被配置成将可到达对象分别保存在堆的原始存储器位置中。
13.如权利要求12所述的存储器管理设备,其特征在于,所述回收组件(560)被配置成根据所述堆内的各边界的固定集合来维护各堆对象的分隔。
14.如权利要求9所述的存储器管理设备,其特征在于,还包括被配置成执行所述脚本的执行组件。
15.如权利要求14所述的存储器管理设备,其特征在于,还包括被配置成基于所述脚本的执行来修改文档对象模型的组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210086589.2/1.html,转载请声明来源钻瓜专利网。





