JVM常用調優配置參數

常用的JVM配置參數:
-Xms2g:初始化堆大小爲 2g;
-Xmx2g:堆最大內存爲 2g;
-XX:NewRatio=4:設置年輕的和老年代的內存比例爲 1:4;
-XX:SurvivorRatio=8:設置新生代 Eden 和 Survivor 比例爲 8:2;
–XX:+UseParNewGC:指定使用 ParNew + Serial Old 垃圾回收器組合;
-XX:+UseParallelOldGC:指定使用 ParNew + ParNew Old 垃圾回收器組合;
-XX:+UseConcMarkSweepGC:指定使用 CMS + Serial Old 垃圾回收器組合;
-XX:+UseG1GC:設置使用G1垃圾回收器
-XX:+PrintGC:開啓打印 gc 信息;
-XX:+PrintGCDetails:打印 gc 詳細信息。
-XX:+PrintHeapAtGC: 表示可以看到每次GC前後堆內存佈局
-XX:UseTLAB:設置使用TLAB
-XX:+PrintTLAB: 表示可以看到TLAB的使用情況。 TLAB的全稱是Thread Local Allocation Buffer 即線程本地分配緩          存區,這是一個線程專用的內存分配區域。
-verbose:gc(-verbose:class可以輸出類加載的信息)
-Xss:表示可以設置虛擬機棧的大小爲128k
-Xoss:表示設置本地方法棧的大小爲128k。不過HotSpot並不區分虛擬機棧和本地方法棧,因此對於HotSpot來說這個參數是無效的
-XX:+TraceClassLoading: 表示查看類的加載信息
-XX:+TraceClassUnLoading: 表示查看類的卸載信息
-XX:+HeapDumpOnOutOfMemoryError: 表示可以讓虛擬機在出現內存溢出異常時Dump出當前的堆內存轉儲快照
-XX:HeapDumpPath:表示可以讓虛擬機在出現內存溢出異常時Dump出當前的堆內存轉儲快照存儲地址
XX:OnOutOfMemoryError:當系統發生OOM錯誤時,虛擬機在錯誤發生時運行一段第三方腳本, 比如, 當OOM發生時,重置系統 -=c:\reset.bat
-XX:-UseGCOverheadLimit:取消outofmemory警告
-XX:PretenureSizeThreshold: 表示對象大於3145728(3M)時直接進入老年代分配,這裏只能以字節作爲單位
-XX:MaxTenuringThreshold: 表示對象年齡大於1,自動進入老年代,如果設置爲0的話,則年輕代對象不經過Survivor區,直接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設置爲一個較大值,則年輕代對象會在Survivor區進行多次複製,這樣可以增加對象在年輕代的存活時間,增加在年輕代被回收的概率。
-XX:CompileThreshold: 表示一個方法被調用1000次之後,會被認爲是熱點代碼,並觸發即時編譯
-XX:+UseSpining:開啓自旋鎖
-XX:PreBlockSpin:更改自旋鎖的自旋次數,使用這個參數必須先開啓自旋鎖
-XX:MaxGCPauseMillis:設置每次年輕代垃圾回收的最長時間,如果無法滿足此時間,JVM會自動調整年輕代大小,以滿足此值。
-XX:+UseAdaptiveSizePolicy:設置此選項後,並行收集器會自動選擇年輕代區大小和相應的Survivor區比例,以達到目標系統規定的最低響應時間或者收集頻率等,此值建議使用並行收集器時,一直打開
開啓逃逸分析(JDK8中,逃逸分析默認開啓。)
-XX:+DoEscapeAnalysis
關閉逃逸分析
-XX:-DoEscapeAnalysis
逃逸分析結果展示
-XX:+PrintEscapeAnalysis
(JDK8中,同步消除默認開啓。)
-XX:+EliminateLocks


作  者:請叫我頭頭哥
出  處:http://www.cnblogs.com/toutou/
關於作者:專注於基礎平臺的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角推薦一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章