預計閱讀時間: 5分鐘java
JVM默認的垃圾回收器(jdk789):微信
jdk1.7 默認垃圾收集器(Server模式):UseParallelGC(Parallel Scavenge(新生代)+Parallel Old(老年代))app
jdk1.8 默認垃圾收集器(Server模式):UseParallelGC(Parallel Scavenge(新生代)+Parallel Old(老年代))工具
jdk1.9 默認垃圾收集器G1ui
查看JVM使用的默認的垃圾收集器:
spa
-XX:+PrintCommandLineFlags參數可查看默認設置收集器類型.net
以下所示:日誌
-XX:InitialHeapSize=266594752 -XX:MaxHeapSize=4265516032 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
-XX:+PrintGCDetails參數亦可經過打印的GC日誌的新生代、老年代名稱判斷code
以下所示:orm
Heap
PSYoungGen total 76288K, used 3932K [0x000000076b400000, 0x0000000770900000, 0x00000007c0000000)
eden space 65536K, 6% used [0x000000076b400000,0x000000076b7d7240,0x000000076f400000)
from space 10752K, 0% used [0x000000076fe80000,0x000000076fe80000,0x0000000770900000)
to space 10752K, 0% used [0x000000076f400000,0x000000076f400000,0x000000076fe80000)
ParOldGen total 175104K, used 0K [0x00000006c1c00000, 0x00000006cc700000, 0x000000076b400000)
object space 175104K, 0% used [0x00000006c1c00000,0x00000006c1c00000,0x00000006cc700000)
Metaspace used 2653K, capacity 4486K, committed 4864K, reserved 1056768K
class space used 285K, capacity 386K, committed 512K, reserved 1048576K
cmd查看執行命令:
java -XX:+PrintCommandLineFlags -version
以下所示:
Microsoft Windows [版本 10.0.16299.547]
(c) 2017 Microsoft Corporation。保留全部權利。
C:\Users\Jeson>java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=266594752 -XX:MaxHeapSize=4265516032 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
C:\Users\Jeson>
垃圾收集相關的經常使用參數:
參數 描述
UseSerialGC 虛擬機運行在Client模式下的默認值,打開此開關後,使用Serial + Serial Old的收集器組合進行內存回收
UseParNewGC 打開此開關後,使用ParNew + Serial Old的收集器組合進行內存回收
UseConcMarkSweepGC 打開此開關後,使用ParNew + CMS(Concurrent Mark Sweep) + Serial Old的收集器組合進行內存回收。Serial Old收集器將做爲CMS收集器出現Concurrent Mode Failure失敗後的後備收集器使用
UseParallelGC 虛擬機運行在Server模式下的默認值,打開此開關後,使用Farallel Scavenge + Serial Old(PS MarkSweep)的收集器組合進行內存回收
UseParallelOldGC 打開此開關後,使用Parallel Scavenge + Parallel Old的收集器組合進行內存回收
還可以使用JDK自帶的Jconsole工具進行可視化的實時查看使用的垃圾回收器及回收垃圾的數量與用時,以下圖:
更多技術文章長按識別下方二維碼關注我吧!!!
本文分享自微信公衆號 - 一隻藍色猿(umizhang0910)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。