涨薪技术|0到1学会性能测试第58课-垃圾回收器
前面的推文我们掌握了Tomcat调优技术。今天给大家分享JVM调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。
前面介绍了回收的算法,但真正进行回收的是实现这些算法的收集器,JVM垃圾回收器一共有七种,其中年轻代收集器有三种:Serial、ParNew、Parallel Scavenge,年老代收集器也有三种:CMS、Serial Old、Parallel Old,对整个堆有效的收集器为G1收集器,如图10-31所示
01Serial收集器
Serial收集器,也叫串行收集器,它是最基本的、发展历史最悠久的收集器,是单线程收集器,但这个单线程并不说只能是一个CPU或一条收集线程去完成垃圾收集工作,Serial收集器在收集垃圾时,必须暂停其他所有工作线程直到回收结束,如图10-32所示
Serial收集器优点:该收集器简单高效,因为采用的是单线程的方法,因此与其他类型的收集器相比,对单个CPU来说没有了上下文之间的的切换,由于没有线程交互的开销,专心垃圾收集自然可以获得最高的单线程效率。。
缺点:会停止所有在工作线程。
适用场景:Client 模式(桌面应用);单核服务器。
参数:可以以下参考设置来开启Serial作为新生代收集器
-XX:+UserSerialGC #选择Serial作为新生代垃圾收集器
02ParNew收集器
ParNew收集器是在Serial收集器上进行优化的,主要优化的是在新生代阶段收集时不再是单线程收集,而是多线程收集,但在年老代还是使用单线程进行收集。ParNew收集器在每个阶段收集的收集算法与Serial收集器的算法一至。
ParNew收集器工作原理,如图10-33所示