[发明专利]保守垃圾收集方法和存储器管理设备有效
| 申请号: | 201210086589.2 | 申请日: | 2012-03-28 |
| 公开(公告)号: | CN102736984B | 公开(公告)日: | 2017-03-01 |
| 发明(设计)人: | S·卢科;C·C-C·曼 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/38 |
| 代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 罗婷婷 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 保守 垃圾 收集 方法 存储器 管理 设备 | ||
技术领域
本发明涉及使用并发标记和并发扫掠的保守垃圾收集算法。
背景技术
作为与一些常规系统有关的背景,应注意计算设备传统上已存储了信息和相关联的应用。对于这些和相关的结果,还应注意实现高效的存储器管理方案可有助于实现最优计算性能。自动存储器管理方案中的开发与手动存储器管理方案相比已被很好地执行。垃圾收集器算法例如是自动存储器管理方案,其尝试取回被特定程序不再使用的各对象所占用的存储器。
跟踪式垃圾收集器是常见类型的垃圾收集器。跟踪式垃圾收集器首先确定哪些对象是可到达的(或者,可能是可到达的),并然后丢弃所有剩余的对象。可到达对象可以被定义成这样的对象:程序环境中存在可直接地或通过来自其他可到达对象的引用而通向该对象的某一变量。更精确地,对象一般可以以两种方式来到达。首先,假设被称为根的对象的特异集合(distinguished set)是可到达的。一般地,这些对象包括引用自调用栈内的任何地方的所有对象(即,当前正被调用的函数中的所有局部变量和参数)以及任何全局变量。其次,引用自可到达对象的任何对象本身被认为是可到达的。然而,常规垃圾收集器的复杂性在于这种垃圾收集器需要快速并高效地释放分配给不再为可到达的各对象的存储器。
当今存储器管理方案的上述缺点仅旨在提供常规系统的一些问题的概览,并且不旨在是穷尽性的。在仔细阅读了以下具体实施方式后,当今领域的其他问题和各非限制性性实施例的对应好处可变得显而易见。
发明内容
此处提供了简化的发明内容以帮助能够对以下更详细的描述和附图中的示例性、非限制性实施例的各方面有基本或大体的理解。然而,本发明内容并不旨在作为详尽的或穷尽的。相反,本节发明内容的唯一目的在于,以简化的形式提出与一些示例性、非限制性实施方式相关的一些概念,作为以下各实施方式的更详细的描述的序言。
根据一个或多个实施例及其相应的公开内容,结合用于存储器管理的保守垃圾收集描述了各个非限制性方面。在这样的一个方面,提供了用于在保守垃圾收集算法内并发地标记和扫掠对象的方法。该方法可包括在脚本的执行期间生成各对象的堆,并跟踪包括在该脚本的未执行部分中的各脚本对象到堆上的相应存储器位置的集合。该实施例还可包括与脚本的执行并发地标记堆的至少一部分,使得经标记的堆包括可到达对象和不可到达对象。对于这个特定实施例,可到达对象是脚本的未执行部分可到达的,而不可到达对象是脚本的未执行部分不可到达的。该方法随后还可包括与脚本的执行并发地基于标记释放分配给各不可到达对象的存储器。
在另一方面,公开了被配置成并发地标记和扫掠对象的存储器管理设备。在这一实施例中,存储器管理设备包括被配置成执行存储在存储器中的计算机可执行组件的处理器。计算机可执行组件包括堆组件、跟踪组件、标记组件和回收组件。堆组件被配置成在脚本的执行期间生成各对象的堆,而跟踪组件被配置成跟踪包括在该脚本的未执行部分中的脚本对象到该堆上的相应存储器位置的集合。标记组件随后被配置成与该脚本的执行并发地标记堆的至少一部分。对于这个实施例,经标记的堆包括脚本的未执行部分可到达的可到达对象,以及脚本的未执行部分不可到达的不可到达对象。回收组件随后被配置成与脚本的执行并发地且根据经标记的堆来释放分配给不可到达对象的存储器。
在又一方面,公开了用于在保守垃圾收集算法中并发地标记和扫掠对象的计算机可读存储介质。在这一实施例中,计算机可读存储介质包括用于使得至少一个处理器执行各个动作的计算机可读指令。例如,这些动作包括生成与调用栈相关联的对象图,以及跟踪该对象图,使得包括在该调用栈的未执行部分中的脚本对象被跟踪到堆上的相应存储器位置的集合。这个实施例还包括与调用栈的执行并发地标记堆对象。对于这个特定实施例,经标记的堆包括调用栈的未执行部分可到达的可到达对象以及调用栈的未执行部分不可到达的不可到达对象。随后与调用栈的执行并发地基于经标记的堆来清除分配给不可到达对象的存储器。
以下更详细地描述其他实施例和各非限制性性示例、场景和实现。
附图说明
参考附图进一步描述各非限制性实施方式,在附图中:
图1示出了根据一实施例的便于实现保守垃圾收集算法的示例性系统;
图2是示出了根据一实施例的对象的示例性堆的示图;
图3是示出了根据一实施例的示例性对象图的示图;
图4是示出了根据一实施例的对存储器的示例性释放的示图;
图5是示出了根据一实施例的示例性存储器管理设备的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210086589.2/2.html,转载请声明来源钻瓜专利网。





