常見收集器
1、UseParNewGC:并發串行收集器,它是工作在新生代的垃圾收集器,它隻是将串行收集器多線程化,除了這個并沒有太多創新之處,而且它們共用了相當多的代碼。
它與串行收集器一樣,也是獨占式收集器,在收集過程中,應用程式會全部暫停。但它卻是許多運作在Server模式下的虛拟機中首選的新生代收集器,其中有一個與性能無關但很重要的原因是,除了Serial收集器外,目前隻有它能與CMS收集器配合工作。
2、UseParallelGC:并行收集器,同時運作在多個cpu之間,實體上的并行收集器,跟上面的收集器一樣也是獨占式的,但是它最大化的提高程式吞吐量,同時縮短程式停頓時間,另外它不能與CMS收集器配合工作。
檢視java gc指令
java -XX:+PrintGCDetails -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Heap
PSYoungGen total 38400K, used 1331K [0x0000000795580000, 0x0000000798000000, 0x00000007c0000000)
eden space 33280K, 4% used [0x0000000795580000,0x00000007956cce48,0x0000000797600000)
from space 5120K, 0% used [0x0000000797b00000,0x0000000797b00000,0x0000000798000000)
to space 5120K, 0% used [0x0000000797600000,0x0000000797600000,0x0000000797b00000)
ParOldGen total 87552K, used 0K [0x0000000740000000, 0x0000000745580000, 0x0000000795580000)
object space 87552K, 0% used [0x0000000740000000,0x0000000740000000,0x0000000745580000)
Metaspace used 2232K, capacity 4480K, committed 4480K, reserved 1056768K
class space used 243K, capacity 384K, committed 384K, reserved 1048576K
java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)