内存垃圾回收的方法、装置及计算机存储介质制造方法及图纸

技术编号:19424822 阅读:28 留言:0更新日期:2018-11-14 10:30
本申请提供了一种内存垃圾回收的方法和装置。该方法包括:根据应用程序的标记节点以及标记节点的引用计数值,确定标记节点是否位于垃圾循环引用RC环中,其中,垃圾RC环中的节点均不存在外部引用;在标记节点位于垃圾RC环中时,对垃圾RC环中的节点进行回收。本申请能够实现对垃圾RC环的回收。

【技术实现步骤摘要】
内存垃圾回收的方法、装置及计算机存储介质
本申请涉及计算机
,并且更具体地,涉及一种内存垃圾回收的方法、装置及计算机存储介质。
技术介绍
近年来,随着物联网(InternetofThings,IoT)技术的快速发展,出现了很多种类的IoT设备。由于IoT设备的内存资源有限(FLASH小于128KB,RAM小于64KB),为了能够将应用或者服务方便地部署到IoT设备中,一个有效的方式是在IoT设备中支持JavaScript(以下简称JS)语言,但是JS运行过程中会产生大量的垃圾对象,需要采用自动回收机制进行垃圾回收(GarbageCollection,GC)。现有技术中通过引用计数法来回收IoT设备中不再被应用程序使用的对象,从而实现对内存资源的自动回收。引用计数法通过为每个节点(该节点也可以称为内存储对象,简称“对象”)维护一个引用计数,当有新的引用指向该节点时,其引用计数就加1,当指向该节点的某个应用被销毁时,其引用计数就减1,当计数归零时,该节点占用的内存资源就被回收。但是,引用计数法无法回收发生循环引用(ReferenceCycle,RC)的节点,如图1所示,R1、R2和本文档来自技高网...

【技术保护点】
1.一种内存垃圾回收的方法,其特征在于,包括:根据应用程序的标记节点以及所述标记节点的引用计数值,确定所述标记节点是否位于垃圾循环引用RC环中,其中,所述垃圾RC环中的节点均不存在外部引用;在所述标记节点位于所述垃圾RC环中时,对所述垃圾RC环中的节点进行回收。

【技术特征摘要】
1.一种内存垃圾回收的方法,其特征在于,包括:根据应用程序的标记节点以及所述标记节点的引用计数值,确定所述标记节点是否位于垃圾循环引用RC环中,其中,所述垃圾RC环中的节点均不存在外部引用;在所述标记节点位于所述垃圾RC环中时,对所述垃圾RC环中的节点进行回收。2.如权利要求1所述的方法,其特征在于,所述根据应用程序的标记节点以及所述标记节点的引用计数值,确定所述标记节点是否位于垃圾循环引用RC环中,包括:将当前节点的子节点的引用计数值减1,如果所述当前节点的子节点中出现引用计数值为0的第一目标子节点,则将所述第一目标子节点作为所述当前节点,重新执行本步骤,直到满足目标条件,如果所述当前节点的子节点中未出现所述第一目标子节点,则退出本步骤,其中,所述标记节点为所述当前节点的初始值,所述目标条件是所述当前节点的第一目标子节点中出现所述标记节点;在满足所述目标条件的情况下,确定所述标记节点位于所述垃圾RC环中。3.如权利要求2所述的方法,其特征在于,所述方法还包括:在不满足所述目标条件的情况下,确定所述标记节点位于非垃圾RC环中;对所述当前节点以及所述当前节点的子节点的引用计数值进行恢复。4.如权利要求3所述的方法,其特征在于,所述对所述当前节点以及所述当前节点的子节点的引用计数值进行恢复,包括:将当前节点的子节点的引用计数值加1,如果所述当前节点的子节点中出现引用计数值为1的第二目标子节点,则将所述第二目标子节点作为所述当前节点,重新执行本步骤,如果所述当前节点的子节点中未出现所述第二目标子节点,则退出本步骤。5.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:确定标记节点集合,其中,所述标记节点集合包含多个节点,所述标记节点为所述多个节点中的任意一个节点。6.一种内存垃圾回收的装置,其特征在于,包括:确定模块,用于根据应用程序的标记节点以及所述标记节点的引用计数值,确定所述标记节点是否位于垃圾循环引用R...

【专利技术属性】
技术研发人员:杨岳鸣陈永健郑镕浩
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1