JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第1张图片

////////////////////////////很严肃的分隔线///////////////////////////////////

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第2张图片

单线程:无法发挥多核的优势。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第3张图片

/**********************************************************************/

并行收集器:

1.ParNew收集器,新生代并行收集器。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第4张图片

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第5张图片

要在多核处理器上才能体现效率。

/**********************************/

2.Parallel收集器

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第6张图片

可以使得新生代和老年代都是并行收集的。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第7张图片

 

有关并行回收器的其他参数设置:

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第8张图片

其中GCTimeRation理解为吞吐量,即应用的性能(cpu占用时间分给应用越多给gc时间越少代表性能越高。)我们希望停顿时间越短,吞吐量越高,这自然就矛盾了。所以要根据自身应用的要求来调试二者取得一个平衡。

 

/**********************************************************************/

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第9张图片

并发concurrent的含义:垃圾回收器与应用程序线程一起执行,交替执行,减少应用程序的停顿时间,但是并发运行垃圾回收器会消耗cpu的资源导致应用的整个吞吐量下降。CMS收集器是个单纯的老年代的收集器,通过如上命令开启。

 

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第10张图片

并发标记和并发清除这两步是和用户线程一起执行的, 但是初始标记和重新标记是会有停顿的。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第11张图片

 

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第12张图片

CMS回收器失败产生,启用备用的串行回收器。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第13张图片

由于CMS要与用户线程同步,不能对碎片进行整理, 所以采用标记清除算法。与串行回收和并行回收的区别是这二者使用的是标记压缩算法可以有效提高内存使用效率。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第14张图片

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第15张图片

CMS线程数量一般设置为可用CPU的数量, 不宜设置过大。

/***********************************/

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第16张图片

/********************************************************/

GC参数整理:

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第17张图片

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第18张图片

/********************************************************/

项目在不同版本的JDK上运行,其吞吐量也会有所变化,所以项目可以在做好充足的测试和应对高版本JDK做好兼容的情况下升级使用高版本的JDK这样可以带来性能的提升。

当设置不同的堆空间参数、不同的GC回收器参数后可以通过GC日志和压力测试工具(如JMeter)来查看项目运行的内存使用情况,调试采用适合的参数来提高应用的性能。

JVM四、堆的回顾、串行回收器、并行回收器、CMS收集器、Tomcat实例演示_第19张图片

 

你可能感兴趣的:(JVM)