JVM啓動參數

JVM參數類型

標準參數(-),全部的JVM實現都必須實現這些參數的功能,並且向後兼容;
非標準參數(-X),默認jvm實現這些參數的功能,可是並不保證全部jvm實現都知足,且不保證向後兼容;
非Stable參數(-XX),此類參數各個jvm實現會有所不一樣,未來可能會隨時取消,須要慎重使用;html

https://www.cnblogs.com/qlqwj...jvm

-XX類型參數

Boolean類型

格式:-XX:[+-]<name>表示啓用或者禁用name屬性性能

-XX:+UseConcMarkSweepGC 使用CMS收集器
-XX:UseG1GC 使用G1收集器

非Boolean類型

格式:-XX:<name>=<value>測試

-XX:NewRatio=2 表示新生代和老年代的比例爲2
-XX:MaxDirectMemorySize=512M 堆外內存最大值,默認64

JVM經常使用啓動參數

參數名稱 含義 默認值
-Xms 初始堆大小 物理內存的1/64(<1GB) 默認(MinHeapFreeRatio參數能夠調整)空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制.
-Xmx 最大堆大小 物理內存的1/4(<1GB) 默認(MaxHeapFreeRatio參數能夠調整)空餘堆內存大於70%時,JVM會減小堆直到 -Xms的最小限制
-Xmn 年輕代大小 注意:此處的大小是(eden+ 2 survivor space).與jmap -heap中顯示的New gen是不一樣的。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小.增大年輕代後,將會減少年老代大小.此值對系統性能影響較大,Sun官方推薦配置爲整個堆的3/8
-XX:NewSize 設置年輕代大小
-XX:MaxNewSize 年輕代最大值
-XX:PermSize 設置持久代(perm gen)初始值 物理內存的1/64
-XX:MaxPermSize 設置持久代最大值 物理內存的1/4
-Xss 每一個線程的堆棧大小 JDK5.0之後每一個線程堆棧大小爲1M,之前每一個線程堆棧大小爲256K.更具應用的線程所需內存大小進行 調整.在相同物理內存下,減少這個值能生成更多的線程.可是操做系統對一個進程內的線程數仍是有限制的,不能無限生成,經驗值在3000~5000左右。通常小的應用, 若是棧不是很深, 應該是128k夠用的 大的應用建議使用256k。這個選項對性能影響比較大,須要嚴格的測試。
-XX:NewRatio 年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代) -XX:NewRatio=4表示年輕代與年老代所佔比值爲1:4,年輕代佔整個堆棧的1/5,Xms=Xmx而且設置了Xmn的狀況下,該參數不須要進行設置?
-XX:SurvivorRatio Eden區與Survivor區的大小比值 設置爲8,則兩個Survivor區與一個Eden區的比值爲2:8,一個Survivor區佔整個年輕代的1/10
-XX:+DisableExplicitGC 關閉System.gc()
-XX:+UseParNewGC 設置年輕代爲並行收集 可與CMS收集同時使用,JDK5.0以上,JVM會根據系統配置自行設置,因此無需再設置此值
-XX:+UseConcMarkSweepGC 使用CMS內存收集
-XX:+PrintGCDetails 輸出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs] [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
-XX:+PrintGCTimeStamps 可與-XX:+PrintGC -XX:+PrintGCDetails混合使用,輸出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]
-XX:+PintFlagsInitial JVM初始化的全部-XX參數
-XX:+PintFlagsFinal JVM最終的的全部-XX參數
相關文章
相關標籤/搜索