2019年最受歡迎的JVM配置參數是怎樣的?
摘要:java.lang.OutOfMemoryError: Java heap這個錯誤可以通過配置-Xms和-Xmx參數來設置。當出現大量局部變量,遞歸時,會發生棧空間OOM(java.lang.StackOverflowError)之類的錯誤。
以下是 JVM 常見十大配置參數:
1. -Xms : 初始堆大小。 只要啓動,就佔用的堆大小。
2. -Xmx : 最大堆大小。 java.lang.OutOfMemoryError: Java heap這個錯誤可以通過配置-Xms和-Xmx參數來設置。
3. -Xss : 棧大小分配。 棧是每個線程私有的區域,通常只有幾百K大小,決定了函數調用的深度,而局部變量、參數都分配到棧上。
當出現大量局部變量,遞歸時,會發生棧空間OOM(java.lang.StackOverflowError)之類的錯誤。
4. XX:NewSize :設置新生代大小的絕對值。
5. -XX:NewRatio : 設置年輕代和年老代的比值。 比如設置爲3,則新生代: 老年代=1:3,新生代佔總heap的1/4。
6. -XX:MaxPermSiz e:設置持久代大小。
java.lang.OutOfMemoryError:PermGenspace這個OOM錯誤需要合理調大PermSize和MaxPermSize大小。
7. -XX:SurvivorRatio :年輕代中Eden區與兩個Survivor區的比值。注意,Survivor區有form和to兩個。比如設置爲8時,那麼eden:form:to=8:1:1。
8. -XX:HeapDumpOnOutOfMemoryError :發生OOM時轉儲堆到文件,這是一個非常好的診斷方法。
9. -XX:HeapDumpPath: 導出堆的轉儲文件路徑。
10. -XX:OnOutOfMemoryError :OOM時,執行一個腳本,比如發送郵件報警,重啓程序。後面跟着一個腳本的路徑。
今天,再給大家推薦一個騰訊課堂的 《Java虛擬機》 訓練營課程,原價99元,粉絲特惠,僅需 0.02元 !
講師將帶着大家棒打 Java 虛擬機這個 進階大廠的攔路虎,從理論到實戰逐步攻克。
正好宅在家,可以好好學習了。
點擊「 閱讀原文 」帶你飛~