JVM參數
主要分為6類
6大類參數
參數 | 描述 |
---|---|
-Xmx5m |
堆內存最大5m |
-Xms5m |
堆內存初始化為5m |
-Xmn10m |
設置年輕代最大為10m |
-Xss256k |
線程堆棧大小256k,等同于-XX:ThreadStackSize=256k ,這個參數會影響到虛擬機棧 的,即方法棧的深度.設置太小可能會導致程序運行時StackOverFlowError
|
-XX:SurvivorRatio=8 |
表示eden與survivor區的比例是8:1:1.因為survivor分為兩個,且等份. |
-XX:PretenureSizeThreshold=4194304 |
設置對象超過此大小后直接在老年代創建的閾值.4194304=4m,即對象超過4m,會直接在老年代中創建.這個參數有一個前提,由于JDK9之前的Server模式下,默認使用的GC收集器是ParallelGC ,會導致這個設置失效,需要配合參數-XX:UseConcMarkSweepGC 或者-XX:UseSerialGC 使用.
|
-XX:MaxTenuringThreshold=5 |
設置晉升到老年代的對象存活年齡,即在survivor復制移動了5次之后,就會晉升到老年代.ParallelGC默認是15,CMS默認是6.最大值為15 |
-XX:+UseSerialGC |
使用串行GC收集器,基本不用 |
-XX:UseParallelGC |
使用并行收集器,其中年帶帶使用Parallel Scavenge 收集器,老年代使用Parallel Old
|
-XX:UseConcMarkSweepGC |
使用并發標記清理收集器,其中年輕代使用ParNew Collector ,老年代使用CMS(Concurrent Mark Sweep) Collector ,如果CMS 出錯或失敗,則會使用Serial Old .在JDK9中被廢棄
|