一,查看jdk默認使用的gc
[lhdop@blog ~]$ java -XX:+PrintCommandLineFlags -version -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=4 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=251580608 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=4025289728 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC java version "15" 2020-09-15 Java(TM) SE Runtime Environment (build 15+36-1562) Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)
可以看到默認的參數使用了 G1GC
說明:劉宏締的架構森林是一個專注架構的博客,
網站:https://blog.imgtouch.com
本文: https://blog.imgtouch.com/index.php/2023/06/01/java-15-zha-kan-jdk-mo-ren-de-gc-he-zheng-zai-shi-yong-de-gc/
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
或: https://gitee.com/liuhongdi
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,查看當前jdk支持的有哪些gc
[lhdop@blog tools]$ java -XX:+PrintFlagsFinal -version | grep 'bool Use' | grep 'GC ' | grep -v java java version "15" 2020-09-15 Java(TM) SE Runtime Environment (build 15+36-1562) Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing) bool UseAdaptiveSizePolicyWithSystemGC = false {product} {default} bool UseG1GC = true {product} {ergonomic} bool UseMaximumCompactionOnSystemGC = true {product} {default} bool UseParallelGC = false {product} {default} bool UseSerialGC = false {product} {default} bool UseShenandoahGC = false {product} {default} bool UseZGC = false {product} {default}
說明:可以看到jdk15已支持zgc,但並未將它設置為默認
三,查看指定進程當前正在使用的gc
[lhdop@blog ~]$ jhsdb jmap --heap --pid 22397 Attaching to process ID 22397, please wait... Debugger attached successfully. Server compiler detected. JVM version is 15+36-1562 using thread-local object allocation. Garbage-First (G1) GC with 4 thread(s) Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 4026531840 (3840.0MB) NewSize = 1363144 (1.2999954223632812MB) MaxNewSize = 2415919104 (2304.0MB) OldSize = 5452592 (5.1999969482421875MB) NewRatio = 2 SurvivorRatio = 8 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 2097152 (2.0MB) Heap Usage: G1 Heap: regions = 1920 capacity = 4026531840 (3840.0MB) used = 99822592 (95.1982421875MB) free = 3926709248 (3744.8017578125MB) 2.479120890299479% used G1 Young Generation: Eden Space: regions = 29 capacity = 69206016 (66.0MB) used = 60817408 (58.0MB) free = 8388608 (8.0MB) 87.87878787878788% used Survivor Space: regions = 3 capacity = 6291456 (6.0MB) used = 6291456 (6.0MB) free = 0 (0.0MB) 100.0% used G1 Old Generation: regions = 18 capacity = 58720256 (56.0MB) used = 32713728 (31.1982421875MB) free = 26006528 (24.8017578125MB) 55.711146763392854% used
>>Garbage-First (G1) GC with 4 thread(s)
可以看到使用的是G1這個gc四,查看java的版本:
[lhdop@blog tools]$ java --version java 15 2020-09-15 Java(TM) SE Runtime Environment (build 15+36-1562) Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)