[发明专利]一种内存垃圾收集器中对象状态的增量式跟踪记录方法无效
申请号: | 201210185833.0 | 申请日: | 2012-06-06 |
公开(公告)号: | CN102722447A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 史晓华 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 官汉增 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提出一种内存垃圾收集器中对象状态的增量式跟踪记录方法,属于编译器软件和运行时系统技术领域,包括:内存垃圾收集器创建对象并增加该对象的对象序列号;内存垃圾收集器完成当前的内存垃圾收集任务后,对每个对象的状态进行增量式的记录,并将记录结果保存在对象状态记录表中;判断内存垃圾收集器的程序是否申请创建了新的对象;判断内存垃圾收集器的程序是否访问了已有的对象;判断内存垃圾收集器的程序是否移动了已有对象;判断存垃圾收集过程中是否释放了已有对象。本发明在内存垃圾收集器中建立一种针对每个对象生存周期和生存状态的增量式跟踪记录机制,这种机制目前不存在于任何内存垃圾收集器中,对程序运行效率的影响较小。 | ||
搜索关键词: | 一种 内存 垃圾 收集 对象 状态 增量 跟踪 记录 方法 | ||
【主权项】:
一种内存垃圾收集器中对象状态的增量式跟踪记录方法,其特征在于:包括以下几个步骤:步骤一:内存垃圾收集器创建一个新的对象的同时,增加该对象的对象序列号GID值,形成现有的对象存储信息;步骤二:内存垃圾收集器完成当前的内存垃圾收集任务后,对每个对象的状态进行记录,并将记录结果保存在对象状态记录表中,对象状态记录表由一个索引表和对象状态记录组成,索引表中的每一项都对应一个对象状态记录;步骤三:判断从上一次内存垃圾收集器执行完内存垃圾收集任务到本次执行完内存垃圾收集任务的过程中,内存垃圾收集器的程序是否申请创建了新的对象,如果是,每增加一个新的对象,在索引表中增加一个以该对象的GID值为下标的新项,并相应增加一个该对象的对象状态记录,并将该对象的创建时间记录在内,如果不是,进入步骤四;步骤四:判断从上一次内存垃圾收集器执行完内存垃圾收集任务到本次执行完内存垃圾收集任务的过程中,内存垃圾收集器的程序是否访问了已有的对象,如果是,每一个被访问的对象,通过索引表,以该被访问对象的GID值为下标,访问到该对象的对象状态记录,将该对象的最近被访问时间记录在对象状态记录中,如果不是,进入步骤五;步骤五:判断本次内存垃圾收集器执行内存垃圾收集过程中是否移动了已有对象,如果是,每一个被移动的对象,通过索引表,以该对象的GID值为下标,访问到该对象的对象状态记录,在该对象的对象状态记录中增加一项内存地址记录信息,标记为“GC x:内存地址”,其中次数x代表内存垃圾收集器的第几次调用该对象。如果不是,进入步骤六;步骤六:判断本次内存垃圾收集器执行内存垃圾收集过程中内存垃圾收集器的程序是否释放了已有对象,如果是,每一个被释放的对象,通过索引表,以该对象的GID值为下标,访问到该对象的对象状态记录,在该对象的对象状态记录中增加一项释放的记录信息,标记为“GC z:释放”,z代表这是内存垃圾收集器第z次执行内存垃圾收集任务,如果不是则结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210185833.0/,转载请声明来源钻瓜专利网。