发明名称 | 用于存储器管理的保守垃圾收集和经标记的整数 | ||
摘要 | 公开了用于保守垃圾收集的各方面。在一个方面,标识出包含在调用栈中的包括整数和指针的根对象。整数表示被标记并且可以同未经标记的指针表示相区分。跟踪根对象到相应的存储器位置,使得对指针表示执行后续跟踪并对整数表示跳过后续跟踪。然后,释放分配给调用栈不可到达的对象的存储器。在另一方面,标记与调用栈相关联的对象图,并且生成堆,所述堆包括包含在调用栈的经执行部分中的对象。跟踪调用栈的未经执行部分中所包括的对象到堆上的相应存储器位置,使得仅仅对未经标记的指针表示执行后续跟踪。然后,清除与调用栈的未经执行部分不可到达的堆对象相对应的存储器位置。 | ||
申请公布号 | CN106294199A | 申请公布日期 | 2017.01.04 |
申请号 | CN201610697224.1 | 申请日期 | 2012.04.06 |
申请人 | 微软技术许可有限责任公司 | 发明人 | S·卢科;C·C-C·曼 |
分类号 | G06F12/02(2006.01)I | 主分类号 | G06F12/02(2006.01)I |
代理机构 | 上海专利商标事务所有限公司 31100 | 代理人 | 顾嘉运 |
主权项 | 一种系统,包括:至少一个处理器;以及至少一个存储器,包括:包括一个或多个根对象的调用栈,每个根对象与整数表示或指针表示中的一个相关联;与所述调用栈相关联的对象图,所述对象图包括被标记的整数表示或未经标记的指针表示中的至少一个,被标记的整数表示可与未经标记的指针表示区分开来;以及可在所述至少一个处理器上执行的组件,包括:扫描组件,标识出在调用栈中的所述一个或多个根对象;标记组件,标记在所述对象图中至少一个整数表示;跟踪组件,执行对所述一个或多个根对象中的至少一个到对应的存储器位置的第一跟踪,执行对与未经标记的指针表示相关联的存储器位置的后续跟踪并跳过对与由所述对象图所标识的经标记的整数表示相关联的存储器位置的所述后续跟踪;以及回收组件,释放分配给所述调用栈不可到达的一组对象的存储器。 | ||
地址 | 美国华盛顿州 |