JVM參數(shù) Options

  • 我們根據(jù)JVM參數(shù)以-X開頭或-XX開頭將JVM參數(shù)分成三個部分:
    1瘤礁、以-開頭的是標(biāo)準(zhǔn)VM選項阳懂,VM規(guī)范的選項;
    2柜思、以-X開頭的都是非標(biāo)準(zhǔn)的(這些參數(shù)并不能保證在所有的JVM上都被實(shí)現(xiàn))岩调,而且如果在新版本有什么改動也不會發(fā)布通知。
    3赡盘、以-XX開頭的都是不穩(wěn)定的并且不推薦在生產(chǎn)環(huán)境中使用号枕。這些參數(shù)的改動也不會發(fā)布通知。
  • Bool型參數(shù)選項:-XX:+ 打開陨享, -XX:- 關(guān)閉葱淳。(比如-XX:+PrintGCDetails)
  • 數(shù)字型參數(shù)選項通過-XX:=設(shè)定。數(shù)字可以是 m/M(兆字節(jié))抛姑,k/K(千字節(jié))赞厕,g/G(G字節(jié))。比如:32K表示32768字節(jié)定硝。(比如-XX:MaxPermSize=64m)
  • String參數(shù)選項通過-XX:=設(shè)定皿桑,通常用來指定一個文件,路徑蔬啡,或者一個命令列表诲侮。(比如-XX:HeapDumpPath=./java_pid.hprof)
  • 命令 java -help可以列出java 應(yīng)用啟動時標(biāo)準(zhǔn)選項(見附錄標(biāo)準(zhǔn)VM參數(shù)表,不同的JVM實(shí)現(xiàn)是不同的)箱蟆。java -X可以列出不標(biāo)準(zhǔn)的參數(shù)(這是JVM的擴(kuò)展特性)沟绪。-X相關(guān)的選項不是標(biāo)準(zhǔn)的,被改變也不會通知空猜。如果你想查看當(dāng)前應(yīng)用使用的JVM參數(shù)绽慈,你可以使用:ManagementFactory.getRuntimeMXBean().getInputArguments()

參數(shù)名稱 含義 默認(rèn)值/備注
-Xms 初始堆大小 物理內(nèi)存的1/64(<1GB) 默認(rèn)(MinHeapFreeRatio參數(shù)可以調(diào)整)空余堆內(nèi)存小于40%時辈毯,JVM就會增大堆直到-Xmx的最大限制
-Xmx 最大堆大小 物理內(nèi)存的1/4(<1GB) 默認(rèn)(MaxHeapFreeRatio參數(shù)可以調(diào)整)空余堆內(nèi)存大于70%時坝疼,JVM會減少堆直到 -Xms的最小限制
-Xmn 新生代大小(jdk 1.4或以上版本) 增大新生代后,將會減小老年代大小漓摩。此值對系統(tǒng)性能影響較大裙士。Sun官方推薦配置為整個堆的3/8
-Xss 每個線程的堆棧大小 JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K管毙,可以帶 K, M 或 G單位
-XX:ThreadStackSize 同上 0代表使用默認(rèn)值腿椎,不能帶單位
-XX:PermSize 設(shè)置永久代初始值 物理內(nèi)存的1/64
-XX:MaxPermSize 設(shè)置永久代最大值 物理內(nèi)存的1/4
-XX:NewRatio 新生代(包括Eden和兩個Survivor區(qū))與老年代的比值(除去永久代) -XX:NewRatio=4表示新生代與老年代所占比值為1:4桌硫,新生代占整個堆棧的1/5,Xms=Xmx并且設(shè)置了Xmn的情況下啃炸,該參數(shù)不需要進(jìn)行設(shè)置铆隘。
-XX:SurvivorRatio Eden區(qū)與Survivor區(qū)的大小比值 設(shè)置為8,則兩個Survivor區(qū)與一個Eden區(qū)的比值為2:8,一個Survivor區(qū)占整個新生代的1/10
-XX:LargePageSizeInBytes 內(nèi)存頁的大小不可設(shè)置過大南用, 會影響Perm的大小 =128m
-XX:+UseFastAccessorMethods 原始類型的快速優(yōu)化
-XX:+DisableExplicitGC 關(guān)閉System.gc() 這個參數(shù)需要嚴(yán)格的測試
-XX:MaxTenuringThreshold 垃圾最大年齡 如果設(shè)置為0的話膀钠,則新生代對象不經(jīng)過Survivor區(qū),直接進(jìn)入老年代裹虫。對于老年代比較多的應(yīng)用肿嘲,可以提高效率。如果將此值設(shè)置為一個較大值筑公,則新生代對象會在Survivor區(qū)進(jìn)行多次復(fù)制雳窟,這樣可以增加對象再新生代的存活時間,增加在新生代即被回收的概率匣屡,該參數(shù)只有在串行GC時才有效
-XX:+AggressiveOpts 加快編譯
-XX:+UseBiasedLocking 鎖機(jī)制的性能改善
-Xnoclassgc 禁用垃圾回收
-XX:SoftRefLRUPolicyMSPerMB 每兆堆空閑空間中SoftReference的存活時間 1s
-XX:PretenureSizeThreshold 對象超過多大是直接在老年代分配 新生代采用Parallel Scavenge GC時無效封救,另一種直接在老年代分配的情況是大的數(shù)組對象,且數(shù)組中無外部引用對象.
-XX:TLABWasteTargetPercent TLAB占eden區(qū)的百分比 1%
-XX:+CollectGen0First FullGC時是否先YGC false
-XX:+UseParallelGC Full GC采用parallel MSC 見[GC參數(shù)][1]
-XX:+UseParNewGC 設(shè)置新生代為并行收集 可與CMS收集同時使用捣作,JDK 5.0以上誉结,JVM會根據(jù)系統(tǒng)配置自行設(shè)置,所以無需再設(shè)置此值
-XX:ParallelGCThreads 并行收集器的線程數(shù) 此值最好配置與處理器數(shù)目相等券躁,同樣適用于CMS
-XX:+UseParallelOldGC 老年代垃圾收集方式為并行收集(Parallel Compacting) 這個是JAVA 6出現(xiàn)的參數(shù)選項
-XX:MaxGCPauseMillis 每次新生代垃圾回收的最長時間(最大暫停時間) 如果無法滿足此時間惩坑,JVM會自動調(diào)整新生代大小,以滿足此值.
-XX:+UseAdaptiveSizePolicy 自動選擇新生代區(qū)大小和相應(yīng)的Survivor區(qū)比例 設(shè)置此選項后嘱朽,并行收集器會自動選擇新生代區(qū)大小和相應(yīng)的Survivor區(qū)比例旭贬,以達(dá)到目標(biāo)系統(tǒng)規(guī)定的最低相應(yīng)時間或者收集頻率等怔接,此值建議使用并行收集器時搪泳,一直打開
-XX:GCTimeRatio 設(shè)置垃圾回收時間占程序運(yùn)行時間的百分比 公式為1/(1+n)
-XX:+ScavengeBeforeFullGC Full GC前調(diào)用YGC true
-XX:+UseConcMarkSweepGC 使用CMS內(nèi)存收集 測試中配置這個以后, -XX:NewRatio=4的配置失效了扼脐,原因不明岸军,所以此時新生代大小最好用-Xmn設(shè)置
-XX:+AggressiveHeap 試圖是使用大量的物理內(nèi)存 長時間大內(nèi)存使用的優(yōu)化,能檢查計算資源(內(nèi)存瓦侮, 處理器數(shù)量艰赞,至少需要256MB內(nèi)存
-XX:CMSFullGCsBeforeCompaction 多少次后進(jìn)行內(nèi)存壓縮 由于并發(fā)收集器不對內(nèi)存空間進(jìn)行壓縮,整理肚吏,所以運(yùn)行一段時間以后會產(chǎn)生“碎片”方妖,使得運(yùn)行效率降低
-XX:+CMSParallelRemarkEnabled 降低標(biāo)記停頓
-XX+UseCMSCompactAtFullCollection 在FullGC的時候?qū)夏甏膲嚎s CMS是不會移動內(nèi)存的, 因此這個非常容易產(chǎn)生碎片罚攀,導(dǎo)致內(nèi)存不夠用党觅,因此內(nèi)存的壓縮這個時候就會被啟用雌澄。增加這個參數(shù)是個好習(xí)慣”埃可能會影響性能镐牺,但是可以消除碎片
-XX:+UseCMSInitiatingOccupancyOnly 使用手動定義初始化定義開始CMS收集 禁止hostspot自行觸發(fā)CMS GC
-XX:CMSInitiatingOccupancyFraction=70 使用cms作為垃圾回收使用70%后開始CMS收集 該值的設(shè)置需要滿足以下公式CMSInitiatingOccupancyFraction計算公式
-XX:CMSInitiatingPermOccupancyFraction 設(shè)置Perm Gen使用到達(dá)多少比率時觸發(fā) 92
-XX:+CMSIncrementalMode 設(shè)置為增量模式 用于單CPU情況
-XX:+CMSClassUnloadingEnabled 永久代CMS方式GC
-XX:+PrintGC GC日志輸出 和-verbose:gc一樣
-XX:+PrintGCDetails 同上 更詳細(xì)
-XX:+PrintGCTimeStamps 輸出GC的時間戳 配合上述PrintGC參數(shù)使用,或者寫成-XX:+PrintGC:PrintGCTimeStamps類似的
-XX:+PrintGC:PrintGCTimeStamps 可與-XX:+PrintGC -XX:+PrintGCDetails混合使用
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期間程序暫停的時間魁莉〔墙В可與上面混合使用 輸出形式:Total time for which application threads were stopped: 0.0468229 seconds
-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,程序未中斷的執(zhí)行時間 可與上面混合使用旗唁,輸出形式:Application time: 0.5291524 seconds
-XX:+PrintHeapAtGC 打印GC前后的詳細(xì)堆棧信息
-Xloggc:filename 把相關(guān)日志信息記錄到文件以便分析 與上面幾個配合使用
-XX:+PrintClassHistogram 在控制臺按下Ctrl+Break后畦浓,打印類的信息
-XX:+PrintClassHistogramBeforeFullGC FullGC前打印類信息
-XX:+PrintTLAB 查看TLAB空間的使用情況
XX:+PrintTenuringDistribution 查看每次minor GC后新的存活周期的閾值
-ea 開啟assert斷言
-Xprof 性能診斷
-Xrunhprof 性能診斷
-XX:+TraceClassLoading 打印類加載過程的信息 類似 [Loaded java.util.AbstractList$Itr from /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloading 打印類卸載的過程信息
Xbootclasspath 指定加載不需要校驗(yàn)的類 跳過必要的類加載前的校驗(yàn),能夠減少加載時間检疫,但是不安全
-XX:+PrintCompilation 打印Hotspot使用JIT 編譯的方法名稱
-XX:+HeapDumpOnOutOfMemoryError OM時生成heap dump 默認(rèn)輸出在存放類文件的根文件夾
-XX:HeapDumpPath 設(shè)置輸出OM dump文件路徑 配合-XX:+HeapDumpOnOutOfMemoryError使用

附錄

[標(biāo)準(zhǔn)VM參數(shù)表]

參數(shù)名稱 描述 默認(rèn)值
-d32 使用 32 位數(shù)據(jù)模型 (如果可用)
-d64 使用 64 位數(shù)據(jù)模型 (如果可用)
-server 選擇 "server" VM 默認(rèn) VM 是 server宅粥,因?yàn)槟窃诜?wù)器類計算機(jī)上運(yùn)行。
-cp <目錄和 zip/jar 文件的類搜索路徑>
-classpath <目錄和 zip/jar 文件的類搜索路徑> 用 : 分隔的目錄电谣,JAR 檔案和 ZIP 檔案列表秽梅,用于搜索類文件
-D<名稱>=<值> 設(shè)置系統(tǒng)屬性
-verbose:[class或gc或jni] 啟用詳細(xì)輸出
-version 輸出產(chǎn)品版本并退出
-version:<值> Deprecated
-showversion 輸出產(chǎn)品版本并繼續(xù)
-jre-restrict-search或-no-jre-restrict-search Deprecated
-? -help 輸出此幫助消息
-X 輸出非標(biāo)準(zhǔn)選項的幫助
-ea[:<包名、類名>] 斷言
-enableassertions[:<包名剿牺、類名>] 按指定的粒度啟用斷言
-da[:<包名企垦、類名>]
-disableassertions[:<包名、類名>] 禁用具有指定粒度的斷言
-esa 或-enablesystemassertions 啟用系統(tǒng)斷言
-dsa 或-disablesystemassertions 禁用系統(tǒng)斷言
-agentlib:<libname>[=<選項>] 加載本機(jī)代理庫 <libname> 例如 -agentlib:hprof另請參閱 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:<pathname>[=<選項>] 按完整路徑名加載本機(jī)代理庫
-javaagent:<jarpath>[=<選項>] 加載 Java 編程語言代理, 請參閱 java.lang.instrument
-splash:<imagepath> 使用指定的圖像顯示啟動屏幕

  1. [http://www.reibang.com/p/c1cc914ef05d] ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晒来,一起剝皮案震驚了整個濱河市钞诡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湃崩,老刑警劉巖荧降,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攒读,居然都是意外死亡朵诫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門薄扁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剪返,“玉大人,你說我怎么就攤上這事邓梅⊥衙ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵日缨,是天一觀的道長钱反。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么面哥? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任乙各,我火速辦了婚禮,結(jié)果婚禮上幢竹,老公的妹妹穿的比我還像新娘耳峦。我一直安慰自己,他們只是感情好焕毫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布蹲坷。 她就那樣靜靜地躺著,像睡著了一般邑飒。 火紅的嫁衣襯著肌膚如雪循签。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天疙咸,我揣著相機(jī)與錄音县匠,去河邊找鬼。 笑死撒轮,一個胖子當(dāng)著我的面吹牛乞旦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播题山,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兰粉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了顶瞳?” 一聲冷哼從身側(cè)響起玖姑,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慨菱,沒想到半個月后焰络,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡符喝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年闪彼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洲劣。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡备蚓,死狀恐怖课蔬,靈堂內(nèi)的尸體忽然破棺而出囱稽,到底是詐尸還是另有隱情,我是刑警寧澤二跋,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布战惊,位于F島的核電站,受9級特大地震影響扎即,放射性物質(zhì)發(fā)生泄漏吞获。R本人自食惡果不足惜况凉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望各拷。 院中可真熱鬧刁绒,春花似錦、人聲如沸烤黍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽速蕊。三九已至嫂丙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間规哲,已是汗流浹背跟啤。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唉锌,地道東北人隅肥。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像袄简,于是被迫代替她去往敵國和親武福。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容