1. 程式人生 > 其它 >檢視JVM使用的什麼垃圾收集器

檢視JVM使用的什麼垃圾收集器

一、方法一

列印虛擬機器所有引數

[root@localhost ~]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=263475648 -XX:MaxHeapSize=4215610368 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 
64-Bit Server VM (build 25.212-b04, mixed mode) [root@iZ2ze1224b1em0jij7qlssZ ~]# java -XX:+PrintFlagsFinal -version | grep : intx CICompilerCount := 2 {product} uintx InitialHeapSize := 264241152 {product} uintx MaxHeapSize :
= 4217372672 {product} uintx MaxNewSize := 1405616128 {product} uintx MinHeapDeltaBytes := 524288 {product} uintx NewSize := 88080384 {product} uintx OldSize :
= 176160768 {product} bool PrintFlagsFinal := true {product} bool UseCompressedClassPointers := true {lp64_product} bool UseCompressedOops := true {lp64_product} bool UseParallelGC := true {product} openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-b04) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

第三列”=”表示第四列是引數的預設值,而”:=” 表明了引數被使用者或者JVM賦值了。

二、方法二

[root@localhost ~]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=263475648 -XX:MaxHeapSize=4215610368 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

針對上述的-XX:UseParallelGC,這邊我們引用《深入理解Java虛擬機器:JVM高階特性與最佳實踐》的介紹:

也就是說,開啟此開關,使用的垃圾收集器是:新生代(Parallel Scavenge),老年代(Ps MarkSweep)組合。

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

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

jdk1.9 預設垃圾收集器G1

三、方法三:

[root@localhost ~]# jmap -heap      25523 
Attaching to process ID 25523, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.212-b04

using thread-local object allocation.
Parallel GC with 2 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 4217372672 (4022.0MB)
   NewSize                  = 88080384 (84.0MB)
   MaxNewSize               = 1405616128 (1340.5MB)
   OldSize                  = 176160768 (168.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 39321600 (37.5MB)
   used     = 3902632 (3.7218399047851562MB)
   free     = 35418968 (33.778160095214844MB)
   9.924906412760416% used
From Space:
   capacity = 524288 (0.5MB)
   used     = 98304 (0.09375MB)
   free     = 425984 (0.40625MB)
   18.75% used
To Space:
   capacity = 524288 (0.5MB)
   used     = 0 (0.0MB)
   free     = 524288 (0.5MB)
   0.0% used
PS Old Generation
   capacity = 121634816 (116.0MB)
   used     = 101585632 (96.87960815429688MB)
   free     = 20049184 (19.120391845703125MB)
   83.5169035812904% used

11612 interned Strings occupying 947640 bytes.

Concurrent Mark-Sweep GC:CMS回收器

Mark Sweep Compact GC:序列GC(Serial GC)

Parallel GC with 2 thread(s):並行GC(ParNew)

參考:

https://www.cnblogs.com/pc-boke/articles/10247068.html

https://blog.csdn.net/earthhour/article/details/76468084