发明名称 |
用于存储器管理的使用并发标记和并发扫掠的保守垃圾收集 |
摘要 |
本发明涉及用于存储器管理的使用并发标记和并发扫掠的保守垃圾收集。公开了用于保守垃圾收集的各方面。在一个方面,在脚本的执行期间生成各对象的堆,并跟踪未执行部分中的各脚本对象到堆上的各相应存储器位置。然后与执行该脚本并发地标记堆,使得经标记的堆包括可到达对象和不可到达对象。然后与执行脚本并发地基于标记释放分配给不可到达对象的存储器。在另一方面,生成与调用栈相关联的对象图,并跟踪该对象图使得跟踪该栈的未执行部分中的各脚本对象到堆上的各相应存储器位置。与执行栈并发地标记各堆对象,使得经标记的堆包括可到达对象和不可到达对象。然后与执行栈并发地基于经标记的堆来清除分配给各不可到达对象的存储器。 |
申请公布号 |
CN102736984A |
申请公布日期 |
2012.10.17 |
申请号 |
CN201210086589.2 |
申请日期 |
2012.03.28 |
申请人 |
微软公司 |
发明人 |
S·卢科;C·C-C·曼 |
分类号 |
G06F12/02(2006.01)I;G06F9/38(2006.01)I |
主分类号 |
G06F12/02(2006.01)I |
代理机构 |
上海专利商标事务所有限公司 31100 |
代理人 |
罗婷婷 |
主权项 |
一种方法,包括:在脚本的执行期间生成(600)各对象的堆;跟踪(610)包括在所述脚本的未执行部分中的各脚本对象到所述堆上的相应存储器位置的集合;与所述脚本的执行并发地标记(620)所述堆的至少一部分,其中经标记的堆包括所述脚本的未执行部分可到达的可到达对象,并且其中经标记的堆还包括所述脚本的未执行部分不可到达的不可到达对象;以及释放(630)分配给所述不可到达对象的存储器,其中所述释放基于所述标记并且与所述脚本的执行并发地执行。 |
地址 |
美国华盛顿州 |