垃圾回收
墨漓鸭鸭鸭
老鸟一枚
展开
-
GC两个关键难点:跨代引用与并发标记
在分析JVM的分代垃圾收集算法的时候,可能存在老年代对新生代的引用,无法真正确定对象已死。 一、解决跨代引用:记忆集 记忆集(Remembered Set):一种用于记录从非收集区域指向收集区域的指针集合的抽象数据结构,在对象层面来说就是非收集区域对象对收集区域对象的引用的记录。 它存放在收集区域,比如在新生代里面存放着老年代对新生代对象的每一个引用。这样在收集新生代的时候,我们就可以根据记忆集知道哪些对象被老年代对象所引用,不能回收,这就解决了跨代引用的问题。 记忆集根据记录的精度分三类: 字长转载 2020-12-17 13:41:37 · 276 阅读 · 0 评论 -
JAVA垃圾收集算法总结以及CMS、G1算法详解
从方法论上讲,程序语言的回收算法主要分为 一、引用计数算法(Reference Counting):给对象添加一个引用计数器,每当一个地方引用它时,数据器加1;当引用失效时,计数器减1;计数器为0的即可被回收。 二、根搜索算法(GC Root Tracing):通过一系列的名为“GC Root”的对象作为起始点,从这些节点开始向下搜索,搜索所有走过的路径称为引用链(Reference Chain),当一个对象到GC Root没有任何引用链相连时(用图论来说就是GC Root到这个对象不可达时),证明该对转载 2020-12-07 19:57:21 · 461 阅读 · 0 评论