1、非穩態選項使用說明java
-XX:+<option> 啓用option -XX:-<option> 不啓用option -XX:<option>=<number> 設定option的值爲數字類型,可跟單位,例如 32k, 1024m, 2g -XX:<option>=<string> 設定option的值爲字符串,例如-XX:HeapDumpPath=./dump.core
-Xms :設置Java堆棧的初始化大小
-Xmx :設置最大的java堆大小
-Xmn :設置Young區大小
-Xss :設置java線程堆棧大小
-XX:PermSize and MaxPermSize :設置持久帶的大小
-XX:NewRatio :設置年輕代和老年代的比值
-XX:NewSize :設置年輕代的大小
-XX:SurvivorRation=n :設置年輕代中E去與倆個S去的比值
-verbose:gc :記錄GC運行以及運行時間,通常用來查看GC是否有瓶頸
-XX:+PrintGCDetails :記錄GC運行時的詳細數據信息,包括新生佔用的內存大小及消耗時間
-XX:-PrintGCTimeStamps :打印收集的時間戳
-XX:+UseParallelGC :使用並行垃圾收集器
-XX:-UseConcMarkSweepGC :使用併發標誌掃描收集器
-XX:-UseSerialGC :使用串行垃圾收集器
-Xloggc:filename :設置GC記錄的文件
-XX:+UseGCLogFileRotation :啓用GC日誌文件的自動轉儲
-XX:GCLogFileSize=1M :控制GC日誌文件的大小
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
-XX:HeapDumpPath=./java_pid.hprof :Path to directory or file name for heap dump.
-XX:-PrintConcurrentLocks :Print java.util.concurrent locks in Ctrl-Break thread dump.
-XX:-PrintCommandLineFlags :Print flags that appeared on the command line.
-Xprof
-Xrunhprof
Xbootclasspath :指定須要加載,但不想經過校驗類路徑。
JVM會對全部的類在加載前進行校驗併爲每一個類經過一個int數值來應用
-XX:+TraceClassLoading :跟蹤類加載的信息(診斷內存泄露頗有用)
-XX:+TraceClassUnloading :跟蹤類卸載的信息(診斷內存泄露頗有用)
7、jvm測試案例併發
1)首先配置VM argumentsapp
2)案例jvm
3)運行程序後,GC日誌就能夠打印出來了socket
DefNew(年輕代)
年輕代分三個區。一個Eden區,兩個Survivor區。大部分對象在Eden區中生成。當Eden區滿時,還存活的對象將被複制到Survivor區(兩個中的一個),當這個Survivor區滿時,此區的存活對象將被複制到另一個Survivor區,當這個Survivor區也滿了的時候,從第一個Survivor區複製過來的而且此時還存活的對象,將被複制「年老區(Tenured)」。須要注意,Survivor的兩個區是對稱的,沒前後關係,因此同一個區中可能同時存在從Eden複製過來對象,和從前一個Survivor複製過來的對象,而複製到年老區的只有從第一個Survivor區過來的對象。並且Survivor區總有一個是空 的。
Tenured(年老代)
年老代存放從年輕代存活的對象。通常來講年老代存放的都是生命期較長的對象。
Perm(持久代)
用於存放靜態文件,持久代對垃圾回收沒有顯著影響,持久代大小經過-XX:MaxPermSize=<N>進行設置。性能