[发明专利]用于垃圾回收的并行标记处理方法及装置有效
申请号: | 201610187840.2 | 申请日: | 2016-03-29 |
公开(公告)号: | CN107239406B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 吴哲锋;杨江华 | 申请(专利权)人: | 斑马智行网络(香港)有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 上海知锦知识产权代理事务所(特殊普通合伙) 31327 | 代理人: | 段洁汝 |
地址: | 中国香港九龙长沙湾道*** | 国省代码: | 香港;81 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 垃圾 回收 并行 标记 处理 方法 装置 | ||
本申请提出一种用于垃圾回收的标记方法及装置,通过根据虚拟机堆中的内存块与N个标记线程的对应关系,遍历所述虚拟机堆中的第一对象,其中,N为大于1的整数,N个标记线程占用的内存容量是预先设置的,每个标记线程至少包括:1个私有栈;将当前处理的第一对象的第一指针压入与该第一对象所在的内存块对应的标记线程的私有栈,根据所述第一指针的压入情况对所述第一对象进行第一标记处理;对所述第一对象遍历完成后,向所述N个标记线程发送线程启动指令,以使所述N个标记线程根据各自私有栈中所述第一指针的压入情况,同步进行用于垃圾回收的标记处理。由此,利用有限的内存实现多线程的并行标记处理,提高整个垃圾回收的性能。
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于垃圾回收的并行标记处理方法及装置。
背景技术
垃圾回收(即Garbage Collection简称GC)技术被广泛使用在当今流行的许多高级语言虚拟机中。GC技术根据垃圾收集器(简称Collector)和宿主(简称Mutator)的关系可以分为两种:Collector工作时Mutator暂停(简称Stop-The-World-GC即STW-GC),Collector工作时Mutator不暂停(简称并发GC即Concurrent-GC)。目前完全并发GC还没有哪一款虚拟机真正实现,流行的高级语言虚拟机比如JVM,V8等都是STW-GC或者部分Concurrent-GC。非引用计数的STW-GC方案可以分为3种,即标记-拷贝(简称marking-copy),标记-清理(简称marking-sweep),和标记-压缩(简称marking-compact)。
目前流行的高级语言虚拟机产品比如JVM,V8等的内存都是通过堆(heap)来进行统一管理,堆以指定大小的内存块(简称为一个page,一般为操作系统的内存页大小的整数倍)为基本单位进行组织。比如V8虚拟机的page大小为1MByte。而且在每一个内存块(即page)的起始部分划分出一块位图区域(称为bitmap)用来标记所在的page中每一个对象是否是活跃对象。比如某个page中的某个对象对应在该page头部的bitmap位被置为1,则说明该对象是活跃对象,进行GC时候不应该进行回收。
当前用于垃圾回收的标记方法为单线程的标记方式,根据标记对象的不断增加,所占用的内存空间会不断增大,由此可见,目前的单线程标记方式浪费了大量的内存空间,降低了处理性能和效率。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种用于垃圾回收的并行标记处理方法,该方法利用有限的内存实现多线程的并行标记处理,提高整个垃圾回收的性能。
本申请的第二个目的在于提出一种用于垃圾回收的并行标记处理方法。
本申请的第三个目的在于提出一种用于垃圾回收的并行标记处理装置。
本申请的第四个目的在于提出一种用于垃圾回收的并行标记处理装置。
为达上述目的,本申请第一方面实施例提出了一种用于垃圾回收的并行标记处理方法,包括:根据虚拟机堆中的内存块与N个标记线程的对应关系,遍历所述虚拟机堆中的第一对象,其中,N为大于1的整数,N个标记线程占用的内存容量是预先设置的,每个标记线程至少包括:1个私有栈;将当前处理的第一对象的第一指针压入与该第一对象所在的内存块对应的标记线程的私有栈,根据所述第一指针的压入情况对所述第一对象进行第一标记处理;对所述第一对象遍历完成后,向所述N个标记线程发送线程启动指令,以使所述N个标记线程根据各自私有栈中所述第一指针的压入情况,同步进行用于垃圾回收的标记处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于斑马智行网络(香港)有限公司,未经斑马智行网络(香港)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610187840.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种源代码中无效函数的查找方法和设备
- 下一篇:一种内存的无线访问方法和装置