1. 程式人生 > >jvm 常用配置引數

jvm 常用配置引數

-verbose:gc 列印 GC 的簡要資訊

-XX:+printGC 列印 GC 的簡要資訊

[GC (Allocation Failure) 6036K->1672K(19968K), 0.0012595 secs]

-XX:+PrintGCDetails 列印 GC 詳細資訊

Heap 名稱               佔用總記憶體    已用記憶體        記憶體地址最低邊界          記憶體地址當前邊界       記憶體地址最高邊界 PSYoungGen total 6656K, used 5806K [0x00000000ff900000, 0x0000000100000000, 0x0000000100000000)       eden       space 6144K, 86% used [0x00000000ff900000,0x00000000ffe2d900,0x00000000fff00000)       from       space 512K, 98% used [0x00000000fff00000,0x00000000fff7e030,0x00000000fff80000)       to       space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000) ParOldGen total 13312K, used 1132K [0x00000000fec00000, 0x00000000ff900000, 0x00000000ff900000)       object       space 13312K, 8% used [0x00000000fec00000,0x00000000fed1b020,0x00000000ff900000) Metaspace used 2673K, capacity 4486K, committed 4864K, reserved 1056768K       class       space used 293K, capacity 386K, committed 512K, reserved 1048576K

-XX:+PrintGCTimeStamps 並不是列印 GC 發生的時間戳,而是 jvm啟動時間為起點的相對時間,例如下面的 0.133

0.133: [GC (Allocation Failure) 6036K->1632K(19968K), 0.0012476 secs]

-XX:+PrintGCDateStamps 列印 GC 發生時的系統時間

2018-09-20T17:33:20.245+0800: [GC (Allocation Failure) 6036K-1648K(19968K), 0.0011757 secs]

-Xloggc:log/gc.log 指定輸出 GC 日誌檔案路徑和名稱 -XX:+PrintHeapAtGC

每次發生 GC 都列印堆資訊

{Heap before GC invocations=1 (full 0): PSYoungGen total 6656K, used 6036K [0x00000000ff900000, 0x0000000100000000, 0x0000000100000000) eden space 6144K, 98% used [0x00000000ff900000,0x00000000ffee53c8,0x00000000fff00000) from space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000) to space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000) ParOldGen total 13312K, used 0K [0x00000000fec00000, 0x00000000ff900000, 0x00000000ff900000) object space 13312K, 0% used [0x00000000fec00000,0x00000000fec00000,0x00000000ff900000) Metaspace used 2666K, capacity 4486K, committed 4864K, reserved 1056768K class space used 292K, capacity 386K, committed 512K, reserved 1048576K Heap after GC invocations=1 (full 0): PSYoungGen total 6656K, used 488K [0x00000000ff900000, 0x0000000100000000, 0x0000000100000000) eden space 6144K, 0% used [0x00000000ff900000,0x00000000ff900000,0x00000000fff00000) from space 512K, 95% used [0x00000000fff00000,0x00000000fff7a020,0x00000000fff80000) to space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000) ParOldGen total 13312K, used 1128K [0x00000000fec00000, 0x00000000ff900000, 0x00000000ff900000) object space 13312K, 8% used [0x00000000fec00000,0x00000000fed1a010,0x00000000ff900000) Metaspace used 2666K, capacity 4486K, committed 4864K, reserved 1056768K class space used 292K, capacity 386K, committed 512K, reserved 1048576K }

-XX:+TraceClassLoading 監控類的載入

[Opened G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.Object from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.io.Serializable from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.Comparable from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.CharSequence from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.String from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.reflect.AnnotatedElement from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.reflect.GenericDeclaration from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.reflect.Type from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.Class from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.Cloneable from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.ClassLoader from G:\Java\jre1.8.0_181\lib\rt.jar] [Loaded java.lang.System from G:\Java\jre1.8.0_181\lib\rt.jar] …

-XX:+PrintClassHistogram 在控制檯按下 Ctrl + Break 後列印類資訊,然而我是打印不出來了ε=( o`ω′)ノ,獻上網路截圖 在這裡插入圖片描述 -Xmx:512m 指定最大堆空間為512m -Xms:5m 指定最小堆空間為5m,在記憶體不足時會自動擴容,直至達到最大堆空間 -Xmn:1m 設定新生代大小 -XX:NewRatio 指定 新生代(PSYoungGen)和 老年代(ParOldGen)的比值 PSYoungGen:ParOldGen = 1:4 -XX:SurvivorRatio 設定兩個 Survivor(倖存區,上面的 from space 和 to space )和 eden 的比值,Survivor:eden = 2:8,即一個 Survivor 佔 PSYoungGen 的 1/10 -XX:+HeapDumpOnOutOfMemoryError OOM 時匯出堆資訊到檔案 -XX:+HeapDumpPath OOM 時匯出堆資訊到檔案的路徑

-XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpPath=d:/a.dump

-XX:OnOutOfMemoryError=d:/printstack.bat %p 在發生 OOM 時執行 printstack.bat 這個指令碼(%p 指當前程序 ID) -XX:PermSize=128m 設定永久代初始空間為128m -XX:MaxPermSize=128m 設定永久代最大空間為128m -Xss: 棧空間大小,決定棧幀深度