新聞中心
這里向大家描述一下JVM垃圾回收機制的概念,JVM垃圾回收分多級,1級或以上為部分JVM垃圾回收,只會回收Young中的垃圾,內(nèi)存溢出通常發(fā)生于OLD段或Perm段JVM垃圾回收后,仍然無內(nèi)存空間容納新的Java對象的情況。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、江寧網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、成都h5網(wǎng)站建設、購物商城網(wǎng)站建設、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為江寧等各大城市提供網(wǎng)站開發(fā)制作服務。
JVM垃圾回收簡介:
JVM垃圾回收分多級,0級為全部(Full)的JVM垃圾回收,會回收OLD段中的垃圾;1級或以上為部分JVM垃圾回收,只會回收Young中的垃圾,內(nèi)存溢出通常發(fā)生于OLD段或Perm段JVM垃圾回收后,仍然無內(nèi)存空間容納新的Java對象的情況。
當一個URL被訪問時,內(nèi)存申請過程如下:
A.JVM會試圖為相關Java對象在Eden中初始化一塊內(nèi)存區(qū)域
B.當Eden空間足夠時,內(nèi)存申請結(jié)束。否則到下一步
C.JVM試圖釋放在Eden中所有不活躍的對象(這屬于1或更高級的JVM垃圾回收);釋放后若Eden空間仍然不足以放入新對象,則試圖將部分
Eden中活躍對象放入Survivor區(qū)/OLD區(qū)
D.Survivor區(qū)被用來作為Eden及OLD的中間交換區(qū)域,當OLD區(qū)空間足夠時,Survivor區(qū)的對象會被移到Old區(qū),否則會被保留在Survivor區(qū)
E.當OLD區(qū)空間不夠時,JVM會在OLD區(qū)進行完全的垃圾收集(0級)
F.完全垃圾收集后,若Survivor及OLD區(qū)仍然無法存放從Eden復制過來的部分對象,導致JVM無法在Eden區(qū)為新對象創(chuàng)建內(nèi)存區(qū)域,則出現(xiàn)"outofmemory錯誤"。下面看一下JVM垃圾回收機制的Java堆的相關參數(shù)。
Java堆相關參數(shù):
ms/mx:定義YOUNG+OLD段的總尺寸,ms為JVM啟動時YOUNG+OLD的內(nèi)存大小;mx為最大可占用的YOUNG+OLD內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設為相同,以減少運行期間系統(tǒng)在內(nèi)存申請上所花的開銷。
NewSize/MaxNewSize:定義YOUNG段的尺寸,NewSize為JVM啟動時YOUNG的內(nèi)存大小;MaxNewSize為最大可占用的YOUNG內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設為相同,以減少運行期間系統(tǒng)在內(nèi)存申請上所花的開銷。
PermSize/MaxPermSize:定義Perm段的尺寸,PermSize為JVM啟動時Perm的內(nèi)存大??;MaxPermSize為最大可占用的Perm內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設為相同,以減少運行期間系統(tǒng)在內(nèi)存申請上所花的開銷。
SurvivorRatio:設置Survivor空間和Eden空間的比例
例:
- MEM_ARGS="-Xms512m-Xmx512m
- -XX:NewSize=256m-XX:MaxNewSize=256m
- -XX:PermSize=128m-XX:MaxPermSize=128m
- -XX:SurvivorRatio=6"
在上面的例子中:
- YOUNG+OLD:512M
- YOUNG:256M
- Perm:128M
- Eden:YOUNG*6/(6+1+1)=192M
- Survivor:YOUNG/(6+1+1)=32M
Java堆的總尺寸=YOUNG+OLD+Perm=640M
【編輯推薦】
- 全面認識JVM垃圾回收機制
- 解決JVM最大內(nèi)存設置問題
- JVM垃圾回收機制使用秘笈
- 詳解Tomcat配置JVM參數(shù)步驟
- 深入學習JVM內(nèi)存設置原理和調(diào)優(yōu)
網(wǎng)站題目:JVM垃圾回收機制簡介
當前網(wǎng)址:http://fisionsoft.com.cn/article/dheoioj.html


咨詢
建站咨詢
