JVM 调优实战--垃圾收集器(串行、ParNew并行、ParallelNew并行、CMS、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