天天看點

JDK7/8/9預設垃圾收集器JDK7/8/9預設垃圾收集器 UseParNewGC和UseParallelGC的差別

JDK7/8/9預設垃圾收集器

jdk1.7 預設垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)

jdk1.8 預設垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)

jdk1.9 預設垃圾收集器G1

-XX:+PrintCommandLineFlagsjvm參數可檢視預設設定收集器類型

-XX:+PrintGCDetails亦可通過列印的GC日志的新生代、老年代名稱判斷

UseParNewGC和UseParallelGC的差別

1、UseParNewGC:并發串行收集器,它是工作在新生代的垃圾收集器,它隻是将串行收集器多線程化,除了這個并沒有太多創新之處,而且它們共用了相當多的代碼。它與串行收集器一樣,也是獨占式收集器,在收集過程中,應用程式會全部暫停。但它卻是許多運作在Server模式下的虛拟機中首選的新生代收集器,其中有一個與性能無關但很重要的原因是,除了Serial收集器外,目前隻有它能與CMS收集器配合工作。

2、UseParallelGC:并行收集器,同時運作在多個cpu之間,實體上的并行收集器,跟上面的收集器一樣也是獨占式的,但是它最大化的提高程式吞吐量,同時縮短程式停頓時間,另外它不能與CMS收集器配合工作。