码迷,mamicode.com
首页 > 其他好文 > 详细

枚举GC Roots根节点

时间:2017-09-29 19:51:33      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:是什么   hotspot   全局   nbsp   栈帧   偏移量   map   索引   属性   

引言

  判断对象是否被回收的算法有引用计数算法和可达性分析算法。其中可达性分析算法是根据GC Roots根节点作为起始点向下搜索引用链,找不到引用链则判定对象可回收。

  可作为GC Roots根节点的对象主要是在全局性的引用(如常量、类静态属性)和执行上下文中(如栈帧中的本地变量表),现在的很多应用仅方法区就有数百兆,逐个检查里边的引用显然很耗费时间。

枚举GC Roots根节点

  在HotSpot实现中,利用了空间换取时间,是使用一组OopMap的数据结构来完成的。类加载完成后,会把对象内什么偏移量上是什么类型的数据计算出来,在JIT编译过程中,在特定的位置(即安全点)使用OopMap记录下栈和寄存器哪些位置是引用,这样GC发生的时候就不用全部扫描了。

枚举GC Roots根节点

标签:是什么   hotspot   全局   nbsp   栈帧   偏移量   map   索引   属性   

原文地址:http://www.cnblogs.com/BINGJJFLY/p/7612071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!