zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JVM 调优实战--垃圾收集器(串行、ParNew并行、ParallelNew并行、CMS、G1)

JVM -- 实战 调优 垃圾 并行 cms 串行
2023-09-14 09:01:56 时间

目录


串行垃圾收集器

编写测试代码 

设置垃圾回收器为串行垃圾回收器

并行垃圾收集器

ParNew垃圾收集器

idea设置为ParNew

ParallelGC垃圾收集器

idea中设置为ParallelGC 

CMS垃圾收集器

idea设置为CMS垃圾回收器

G1垃圾收集器

原理

Young GC

RememberedSet已记忆集合

Mixed GC

全局并发标记

拷贝存活对象

G1垃圾收集器相关参数

idea中设置为G1

G1垃圾收集器优化建议


在JVM中,实现了多种垃圾收集器,包括:串行垃圾收集器、并行垃圾收集器、CMS(并行)垃圾收集器

串行垃圾收集器

一般在Java web应用程序中是不会采用串行垃圾收集器的。一旦进行垃圾回收,应用就会被暂停,还怎么好好玩耍了!STW:Stop The World

编写测试代码 

设置垃圾回收器为串行垃圾回收器

Allocation Failure:分配失败 

GC是年轻代的GC,FGC是全面GC包括metaspace元数据空间。

并行垃圾收集器

ParNew垃圾收集器

idea设置为ParNew

ParallelGC垃圾收集器

idea中设置为ParallelGC 

CMS垃圾收集器

Marking和FinalMarking会标记两次,这是由于在【预处理】结束后会产生一些新的对象,所以要最终再标记一次。

idea设置为CMS垃圾回收器

 

以上日志信息,也可以看出来CMS的执行过程。

G1垃圾收集器

原理

Young GC

RememberedSet已记忆集合

RSet是G1垃圾收集器中的一个技术亮点。

Mixed GC

默认当老年代的大小占整个堆大小45%时会触发Mixed GC。

全局并发标记

拷贝存活对象

G1垃圾收集器相关参数

idea中设置为G1

-XX:+UseG1GC

G1垃圾收集器优化建议