深入理解java虚拟机
Moca·
这个作者很懒,什么都没留下…
展开
-
并发的可达性分析
并发的可达性分析 当前主流编程语言的垃圾收集器基本上都是依靠可达性分析算法来判定对象 是否存活的,可达性分析算法理论上要求全过程都基于一个能保障一致性的快照中才能够进行分析, 这意味着必须全程冻结用户线程的运行。 在根节点枚举这个步骤中,由于GC Roots相比起整个Java堆中全部的对象毕竟还算是极少数,且在各种优化技巧(如OopMap)的加持下,它带来的停顿已经是非常短暂且相对固定(不随堆容量而增长)的了。 但是从GC Roots再继续往下遍历对象图,这一步骤的停顿时间就必定会与Java堆容量直接成正比原创 2020-06-04 17:11:24 · 621 阅读 · 1 评论 -
记忆集、卡表与写屏障
提出问题 分代收集理论的时候,会存在为了解决对象跨代引用所带来的的问题。垃圾收集器在新生代中建立啦名字为挤一挤的数据结构,用来避免把整个老年代加进GC roots扫描范围。事 实上并不只是新生代、老年代之间才有跨代引用的问题,所有涉及部分区域收集(Partial GC)行为的 垃圾收集器,典型的如G1、ZGC和Shenandoah收集器,都会面临相同的问题,因此我们有必要进一步理清记忆集的原理和实现方式,以便学习几款最新的收集器相关知识时能更好地理解。 记忆集 记忆集是一种用于记录从非收集区域指向收集区域的原创 2020-06-03 16:04:30 · 2407 阅读 · 10 评论 -
ZGC收集器原理(深入理解Java虚拟机学习笔记)
ZGC收集器 一款在 JDK 11中新加入的具有实验性质的低延迟垃圾收集器 ZGC的目标是希望在尽可能对吞吐量影响不太大的前提下,实现在任意堆内存大小下都可以把垃圾收集的停顿时间限制在十毫秒以内的低延迟。 ZGC主要特征 ZGC收集器是一款基于Region内存布局的,(暂时) 不设分代的,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。 ZGC内存布局 ZGC采用基于Region的堆内存布局,但与它们不同的是,ZGC的Region(在一些官方资原创 2020-05-28 14:22:19 · 1987 阅读 · 0 评论