发明名称 |
垃圾对象检测方法和装置 |
摘要 |
本发明涉及计算机应用技术领域,具体涉及垃圾对象检测方法和装置。垃圾对象检测方法,包括步骤:检测被检测对象是否形成循环引用链,是,则判断该循环引用链上的每一个对象是否被所述循环引用链外部的对象引用,否,则判定该循环引用链上的各对象均为垃圾对象,析构所述循环引用链。垃圾对象检测装置,包括检测模块和析构模块。本发明所提供的垃圾对象检测方法和装置,能够有效地解决引用计数法所存在的无法回收循环引用链上的垃圾对象的问题,提高了垃圾处理的准确度,且清除了更多的垃圾,从而释放出更多的资源。 |
申请公布号 |
CN103226476B |
申请公布日期 |
2016.06.08 |
申请号 |
CN201310188123.8 |
申请日期 |
2013.05.20 |
申请人 |
张永强 |
发明人 |
张永强 |
分类号 |
G06F9/44(2006.01)I |
主分类号 |
G06F9/44(2006.01)I |
代理机构 |
北京超凡志成知识产权代理事务所(普通合伙) 11371 |
代理人 |
吴开磊 |
主权项 |
垃圾对象检测方法,其特征在于,包括步骤:预先为每一个被检测的对象设置用于标记该对象引用计数的第一变量、用于标记对象是否处于循环引用链上的第二变量以及用于标记处于循环引用链的对象被处于该循环引用链上的其他对象所引用的引用计数的第三变量;判断对象列表是否为空,是,则继续等待直到对象列表非空,否,则从对象列表中获取一个对象作为第一对象;判断获取的所述第一对象的第一变量的值是否小于或者等于0,是,则析构所述第一对象;否,则以所述第一对象为起点,依据引用关系,进行深度优先遍历,检测是否存在循环引用链,根据遍历结果,标记各个被检测对象的第三变量的值,并将检测出的循环引用链上的所有对象的第二变量标记为是;以检测出的循环引用链上的一个对象作为第二对象,以所述第二对象为起点,依次遍历处于该循环引用链上的各对象,判断该循环引用链上的所有对象的第三变量的值与第一变量的值是否相等,是,则析构整个循环引用链上的所有对象。 |
地址 |
210036 江苏省南京市鼓楼区江东北路297号 |