Java GC
学好gc原理对java编程益处良多,自己学习的同时,与大家分享,共同交流、共同进步!
flyingnet
编程圈小炮儿~~~
展开
-
jvm进行Major GC的时候为什么会同时伴随Minor GC呢?
大家都知道在分代gc中,jvm会在青年代堆空间不足时触发Minor gc,在老年代堆空间不足时触发Full gc,但实际上,Full gc只是一个逻辑称呼,是同时进行Major gc和Minor gc的一个统称而已。那问题来了,为什么我们看不到只进行老年代堆内存回收而执行Major gc的情况呢?其实,jvm之所有这样是一种优化设计(其实也是一种妥协),目的是避免创建新生代引用老年代的跨代引用指针的Remember Set,同时,降低与之相关的Mutator写屏障开销。在空间和时间上都有很大的优化提原创 2020-12-09 15:04:10 · 725 阅读 · 5 评论 -
十种GC收集器及原理(5)—G1
Garbage-First Collector(G1)是Oracle HotSpot Java虚拟机(JVM)6中引入的垃圾收集算法,自JDK 7 Update 4起受支持。它计划取代JVM 7中的并发标记清除收集器(CMS),并已实现。 Java 9中的默认设置。原创 2020-10-15 09:52:24 · 676 阅读 · 0 评论 -
十种GC收集器及原理(4)—CMS
CMS原创 2020-10-15 09:26:04 · 381 阅读 · 0 评论 -
十种GC收集器及原理(3)—ParNew
ParNew是用于新生代的垃圾收集器,与Parallel Scavenge使用相同的算法。不同之处在于它具有内部“回调”,该功能使旧的收集器可以对其收集的对象进行操作(实际上是为了与并发收集器一起工作而编写的)。可以在带有“ ParNew”标签的GC日志消息中标识用于新生代的ParNew收集器,如本例所示:“ ParNew:1068K-> 63K(1152K)”。在JVM 9和更早版本中,可以使用“ -XX:+ UseParNewGC”选项显式调用用于Young一代的ParNew收集器。但是此选项原创 2020-09-08 15:47:25 · 1899 阅读 · 0 评论 -
十种GC收集器及原理(2)—Serial Old
Serial Old是Serial收集器的老年代版本,也属于单线程串行收集器。其采用的GC算法为Mark-Compact(标记-整理算法),与用于新生代的Serial收集器“复制算法”不同。Mark-Compact算法的原创 2020-09-07 16:27:02 · 640 阅读 · 0 评论 -
十种GC收集器及原理(1)—Serial
jvm发展至今已有很长一段时间,最开始原创 2020-09-07 16:26:46 · 1009 阅读 · 0 评论