开发者
资源
各种回收器的分类、特点和修改参数
各种回收器的分类、特点和修改参数
发表于2024/08/14
1012
名称修改参数特点 
Serial-XX:+UseSerialGC用于新生代的单线程收集器,采用复制算法进行垃圾收集。Serial 进行垃圾收集时,所有的用户线程必须暂停(Stop The World)。 
ParNew

-XX: +UseParNewGC

Serial 的多线程版本,在单核 CPU 环境并不会比 Serial 更优,它默认开启的收集线程数和 CPU 核数,可以通过 -XX:ParallelGCThreads 来设置垃圾收集的线程数。 

Parallel 

Scavenge

-XX: +UseParallelGC 

jdk1.7、jdk1.8 新生代默认使用用于新生代的多线程收集器, ParNew 的目标是尽可能缩短垃圾收集时用户线程的停顿时间,Parallel Scavenge 的目标是达到一个可控制的吞吐量。通过￾XX:MaxGCPauseMillis 来设置收集器尽可能在多长时间内完成内存回收,通过 - XX:GCTimeRatio 来精确控制吞吐量

Serial Old

-XX: +UseSerialOldGC

Serial 的老年代版本,采用标记-整理算法单线程收集器 

CMS

-XX:+UseConMarkSweepGC 

一种以最短回收停顿时间为目标的收集器,尽量做到最短用户线程停顿时间。CMS是基于标记-清除算法,所以垃圾回收后会产生空间碎片,通过 XX:UseCMSCompactAtFullCollection 开启碎片整理(默认开启)。用 -XX:CMSFullGCsBeforeCompaction 设置执行多少次不压缩(不进行碎片整理)的 Full GC 之后,跟着来一次带压缩(碎片整理)的 Full GC。XX:ParallelCMSThreads:设定CMS的线程数量。 

Parallel Old

-XX:+UseParallelOldG 

C jdk1.7、jdk1.8老年代默认使用 

Parallel Scavenge的老年代版本,使用￾XX:ParallelGCThreads限制线程数量。 
收藏举报
Level 1
0
帖子
0
粉丝
0
获赞