自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JVM垃圾回收機(jī)制簡(jiǎn)介

開(kāi)發(fā) 后端
JVM垃圾回收分多級(jí),0級(jí)為全部(Full)的JVM垃圾回收,會(huì)回收OLD段中的垃圾;1級(jí)或以上為部分JVM垃圾回收,只會(huì)回收Young中的垃圾。

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

JVM垃圾回收簡(jiǎn)介:

JVM垃圾回收分多級(jí),0級(jí)為全部(Full)的JVM垃圾回收,會(huì)回收OLD段中的垃圾;1級(jí)或以上為部分JVM垃圾回收,只會(huì)回收Young中的垃圾,內(nèi)存溢出通常發(fā)生于OLD段或Perm段JVM垃圾回收后,仍然無(wú)內(nèi)存空間容納新的Java對(duì)象的情況。

當(dāng)一個(gè)URL被訪問(wèn)時(shí),內(nèi)存申請(qǐng)過(guò)程如下:

A.JVM會(huì)試圖為相關(guān)Java對(duì)象在Eden中初始化一塊內(nèi)存區(qū)域

B.當(dāng)Eden空間足夠時(shí),內(nèi)存申請(qǐng)結(jié)束。否則到下一步

C.JVM試圖釋放在Eden中所有不活躍的對(duì)象(這屬于1或更高級(jí)的JVM垃圾回收);釋放后若Eden空間仍然不足以放入新對(duì)象,則試圖將部分

Eden中活躍對(duì)象放入Survivor區(qū)/OLD區(qū)

D.Survivor區(qū)被用來(lái)作為Eden及OLD的中間交換區(qū)域,當(dāng)OLD區(qū)空間足夠時(shí),Survivor區(qū)的對(duì)象會(huì)被移到Old區(qū),否則會(huì)被保留在Survivor區(qū)

E.當(dāng)OLD區(qū)空間不夠時(shí),JVM會(huì)在OLD區(qū)進(jìn)行完全的垃圾收集(0級(jí))

F.完全垃圾收集后,若Survivor及OLD區(qū)仍然無(wú)法存放從Eden復(fù)制過(guò)來(lái)的部分對(duì)象,導(dǎo)致JVM無(wú)法在Eden區(qū)為新對(duì)象創(chuàng)建內(nèi)存區(qū)域,則出現(xiàn)"outofmemory錯(cuò)誤"。下面看一下JVM垃圾回收機(jī)制的Java堆的相關(guān)參數(shù)。

Java堆相關(guān)參數(shù):

ms/mx:定義YOUNG+OLD段的總尺寸,ms為JVM啟動(dòng)時(shí)YOUNG+OLD的內(nèi)存大??;mx為最大可占用的YOUNG+OLD內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個(gè)值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請(qǐng)上所花的開(kāi)銷(xiāo)。

NewSize/MaxNewSize:定義YOUNG段的尺寸,NewSize為JVM啟動(dòng)時(shí)YOUNG的內(nèi)存大小;MaxNewSize為最大可占用的YOUNG內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個(gè)值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請(qǐng)上所花的開(kāi)銷(xiāo)。

PermSize/MaxPermSize:定義Perm段的尺寸,PermSize為JVM啟動(dòng)時(shí)Perm的內(nèi)存大?。籑axPermSize為最大可占用的Perm內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個(gè)值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請(qǐng)上所花的開(kāi)銷(xiāo)。

SurvivorRatio:設(shè)置Survivor空間和Eden空間的比例

例:

  1.  
  2.  
  3. MEM_ARGS="-Xms512m-Xmx512m  
  4. -XX:NewSize=256m-XX:MaxNewSize=256m 
  5. -XX:PermSize=128m-XX:MaxPermSize=128m 
  6. -XX:SurvivorRatio=6"  

在上面的例子中:

  1. YOUNG+OLD:512M  
  2. YOUNG:256M  
  3. Perm:128M  
  4. Eden:YOUNG*6/(6+1+1)=192M  
  5. Survivor:YOUNG/(6+1+1)=32M  
  6.  

Java堆的總尺寸=YOUNG+OLD+Perm=640M

【編輯推薦】

  1. 全面認(rèn)識(shí)JVM垃圾回收機(jī)制
  2. 解決JVM最大內(nèi)存設(shè)置問(wèn)題
  3. JVM垃圾回收機(jī)制使用秘笈
  4. 詳解Tomcat配置JVM參數(shù)步驟
  5. 深入學(xué)習(xí)JVM內(nèi)存設(shè)置原理和調(diào)優(yōu)
責(zé)任編輯:佚名 來(lái)源: i5tt.com
相關(guān)推薦

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收機(jī)制

2021-11-05 15:23:20

JVM回收算法

2010-09-26 16:42:04

JVM內(nèi)存組成JVM垃圾回收

2010-09-26 11:22:22

JVM垃圾回收JVM

2017-03-03 09:26:48

PHP垃圾回收機(jī)制

2017-08-17 15:40:08

大數(shù)據(jù)Python垃圾回收機(jī)制

2009-06-23 14:15:00

Java垃圾回收

2011-07-04 16:48:56

JAVA垃圾回收機(jī)制GC

2021-05-27 21:47:12

Python垃圾回收

2011-06-28 12:39:34

Java垃圾回收

2015-06-04 09:38:39

Java垃圾回收機(jī)

2017-06-12 17:38:32

Python垃圾回收引用

2021-12-07 08:01:33

Javascript 垃圾回收機(jī)制前端

2009-12-09 17:28:34

PHP垃圾回收機(jī)制

2010-10-13 10:24:38

垃圾回收機(jī)制JVMJava

2011-12-26 09:50:05

.NET垃圾回收

2024-02-22 17:15:22

JS垃圾回收機(jī)制

2023-02-28 07:56:07

V8內(nèi)存管理

2017-10-12 12:41:11

PHP圾回收機(jī)制變量容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)