欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jdk版本和垃圾收集器对应关系

程序员文章站 2022-06-28 16:50:09
1. 使用jcmd假设java进程id为1000# Linuxjcmd 1000 PerfCounter.print |grep gc.collector.*name# Windowsjcmd 1000 PerfCounter.print |findstr gc.collector.*name1234以串行收集器(-XX:+UseSerialGC )为例,返回信息如下:sun.gc.collector.0.name="Copy"sun.gc.collector.1...

1. 使用jcmd

假设java进程id为1000

# Linux
jcmd 1000 PerfCounter.print |grep gc.collector.*name
# Windows
jcmd 1000 PerfCounter.print |findstr gc.collector.*name

以串行收集器(-XX:+UseSerialGC )为例,返回信息如下:

sun.gc.collector.0.name="Copy"
sun.gc.collector.1.name="MSC"

名称与收集器对照表

名称 收集器 作用区域 启用参数
Copy Serial Young -XX:+UseSerialGC
MSC Serial Old Old -XX:+UseSerialGC
PSScavenge Parallel Scavenge Young -XX:+UseParallelGC
PSMarkSweep Parallel Scavenge Old -XX:+UseParallelGC -XX:-UseParallelOldGC
PSParallelCompact Parallel Old Old -XX:+UseParallelGC
PCopy ParNew Young -XX:+UseConcMarkSweepGC
或者 -XX:+UseParNewGC(JDK9起废除)
CMS Concurrent Mark Sweep Old -XX:+UseConcMarkSweepGC (JDK9起标识为过期,由G1接班)
G1 incremental collections G1 Young或者Young+部分Old -XX:+UseG1GC(JDK9起默认收集器)
G1 stop-the-world full collections G1 Full -XX:+UseG1GC

各Java版本默认收集器

版本 Young Old
JDK6 PSScavenge(Parallel Scavenge) PSMarkSweep (Parallel Scavenge)
JDK7 PSScavenge(Parallel Scavenge) PSParallelCompact(Parallel Old)
JDK8 PSScavenge(Parallel Scavenge) PSParallelCompact(Parallel Old)
JDK11 G1 G1

从G1开始分代回收渐渐模糊,最新的ZGC已经没有分代(可能只是暂时的)一说。

本文地址:https://blog.csdn.net/sinat_32023305/article/details/108732109

相关标签: java SE