Java教程

垃圾回收器搭配和调优

本文主要是介绍垃圾回收器搭配和调优,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
由于Java11中ZGC的出现,尽量不要对GC调优的研究下太多功夫,对未来来说,这是贬值的。

新生代的垃圾回收器

收集器算法收集器类型说明适用场景
Serial复制算法单线程进行垃圾回收时,须暂停所有工作线程,知道回收完成简单高效,适合内存不大的情况
ParNew复制算法多线程并行它是Serial收集器的多线程版本搭配CMS的首选
Parallel Scavenge(吞吐量优先收集器)复制算法多线程并行类似ParNew,更加关注吞吐量主要适合后台运算不需要太多交互的任务

老年代的垃圾回收器

收集器算法收集器类型说明适用场景
Serial Old标记整理单线程JDK7/8默认的Client模式下虚拟机适用
Parallel Old标记整理多线程并行Parallel Scavenge的老年代版本在注重吞吐量场景下使用
CMS标记清除并行、并发尽可能缩短GC时用户线程停止的时间,缺点:1、容易有内存碎片 2、需要更多的cpu资源 3、产生浮动垃圾,需要更大的堆空间重视服务的相应速度
G1跨代、标记整理并行、并发JDK7正式引入,采用分区回收的思维,基本不牺牲吞吐量的前提下,低停顿内存回收,可预测的停顿是其最大的优势面向服务端应用的垃圾回收器,目标是取代CMS

垃圾回收器搭配

image-20200803224511274

这篇关于垃圾回收器搭配和调优的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!