欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JVM系列二:GC策略&內(nèi)存申請(qǐng)、對(duì)象衰老

JVM系列二:GC策略&內(nèi)存申請(qǐng)、對(duì)象衰老

JVM里的GC(GarbageCollection)的算法有很多種,如標(biāo)記清除收集器,壓縮收集器,分代收集器等等,詳見(jiàn)HotSpotVMGC的種類(lèi)

創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000+客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蟠龍企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,蟠龍網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

現(xiàn)在比較常用的是分代收集,即將內(nèi)存分為幾個(gè)區(qū)域,將不同生命周期的對(duì)象放在不同區(qū)域里:younggeneration,tenuredgeneration和permanetgeneration。絕大部分的objec被分配在younggeneration(生命周期短),并且大部分的object在這里die。當(dāng)younggeneration滿(mǎn)了之后,將引發(fā)minorcollection(YGC)。在minorcollection后存活的object會(huì)被移動(dòng)到tenuredgeneration(生命周期比較長(zhǎng))。最后,tenuredgeneration滿(mǎn)之后觸發(fā)majorcollection。majorcollection(Fullgc)會(huì)觸發(fā)整個(gè)heap的回收,包括回收younggeneration。permanetgeneration區(qū)域比較穩(wěn)定,主要存放classloader信息。

younggeneration有eden、2個(gè)survivor區(qū)域組成。其中一個(gè)survivor區(qū)域一直是空的,是eden區(qū)域和另一個(gè)survivor區(qū)域在下一次copycollection后活著的objecy的目的地。object在survivo區(qū)域被復(fù)制直到轉(zhuǎn)移到tenured區(qū)。

我們要盡量減少Fullgc的次數(shù)(tenuredgeneration一般比較大,收集的時(shí)間較長(zhǎng),頻繁的Fullgc會(huì)導(dǎo)致應(yīng)用的性能收到嚴(yán)重的影響)。

堆內(nèi)存GC

JVM(采用分代回收的策略),用較高的頻率對(duì)年輕的對(duì)象(younggeneration)進(jìn)行YGC,而對(duì)老對(duì)象(tenuredgeneration)較少(tenuredgeneration滿(mǎn)了后才進(jìn)行)進(jìn)行FullGC。這樣就不需要每次GC都將內(nèi)存中所有對(duì)象都檢查一遍。

非堆內(nèi)存不GC

GC不會(huì)在主程序運(yùn)行期對(duì)PermGenSpace進(jìn)行清理,所以如果你的應(yīng)用中有很多CLASS(特別是動(dòng)態(tài)生成類(lèi),當(dāng)然permgenspace存放的內(nèi)容不僅限于類(lèi))的話,就很可能出現(xiàn)PermGenSpace錯(cuò)誤。

內(nèi)存申請(qǐng)、對(duì)象衰老過(guò)程
一、內(nèi)存申請(qǐng)過(guò)程

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

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

  3. JVM試圖釋放在Eden中所有不活躍的對(duì)象(minorcollection次收集),釋放后若Eden空間仍然不足以放入新對(duì)象,則試圖將部分Eden中活躍對(duì)象放入Survivor區(qū);

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

  5. 當(dāng)old區(qū)空間不夠時(shí),JVM會(huì)在old區(qū)進(jìn)行majorcollection(完全收集);

  6. 完全垃圾收集后,若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系列二:GC策略&內(nèi)存申請(qǐng)、對(duì)象衰老

二、對(duì)象衰老過(guò)程

  1. 新創(chuàng)建的對(duì)象的內(nèi)存都分配自eden。Minorcollection的過(guò)程就是將eden和在用survivorspace中的活對(duì)象copy到空閑survivorspace中。對(duì)象在younggeneration里經(jīng)歷了一定次數(shù)(可以通過(guò)參數(shù)配置)的minorcollection后,就會(huì)被移到oldgeneration中,稱(chēng)為tenuring。

  2. GC觸發(fā)條件

    GC類(lèi)型觸發(fā)條件觸發(fā)時(shí)發(fā)生了什么注意查看方式
    YGCeden空間不足

    清空Eden+fromsurvivor中所有noref的對(duì)象占用的內(nèi)存
    將eden+fromsur中所有存活的對(duì)象copy到tosur中
    一些對(duì)象將晉升到old中:
    tosur放不下的
    存活次數(shù)超過(guò)turningthreshold中的
    重新計(jì)算tenuringthreshold(serialparallelGC會(huì)觸發(fā)此項(xiàng))

    重新調(diào)整Eden和from的大小(parallelGC會(huì)觸發(fā)此項(xiàng))

    全過(guò)程暫停應(yīng)用
    是否為多線程處理由具體的GC決定
    jstat–gcutil
    gclog
    FGC

    old空間不足
    perm空間不足
    顯示調(diào)用System.GC,RMI等的定時(shí)觸發(fā)
    YGC時(shí)的悲觀策略
    dumplive的內(nèi)存信息時(shí)(jmap–dump:live)

    清空heap中noref的對(duì)象
    permgen中已經(jīng)被卸載的classloader中加載的class信息

    如配置了CollectGenOFirst,則先觸發(fā)YGC(針對(duì)serialGC)
    如配置了ScavengeBeforeFullGC,則先觸發(fā)YGC(針對(duì)serialGC)

    全過(guò)程暫停應(yīng)用
    是否為多線程處理由具體的GC決定

    是否壓縮需要看配置的具體GC
    jstat–gcutil
    gclog
    permanentgeneration空間不足會(huì)引發(fā)FullGC,仍然不夠會(huì)引發(fā)PermGenSpace錯(cuò)誤。

調(diào)優(yōu)的目的,盡可能的減少觸發(fā)FGC

網(wǎng)頁(yè)標(biāo)題:JVM系列二:GC策略&內(nèi)存申請(qǐng)、對(duì)象衰老
轉(zhuǎn)載注明:http://aaarwkj.com/article14/igipge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航網(wǎng)站收錄、App開(kāi)發(fā)、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
国产精品国产三级国产不卡| 最新日韩av一区二区| 中字幕人妻一区二区三区| 久久久久四虎国产精品| 国产熟女碰碰人人a久久| 日韩乱码高清一本免费啪| 久久不卡高清免费av| 国产精品国产三级丝袜| 日韩av在线免费在线观看| 伊人久久精品一区二区| 欧美午夜精品一二三区| 精品国产一区二区三区性色av| 久久综合婷婷亚洲色图| 午夜影院在线免费观看三区| 日本精品不卡一二三区| 国产精品岛国片在线观看| 亚洲成人久久久久久久| 一区二区三区蜜桃91| 五月婷婷丁香六月在线综合| 变态另类日韩欧美高清| 亚洲欧洲另类美女久久精品| 久久久国产精品久久久| 熟女人妻av五十路六十路| 97色伦97色伦国产在线| 日韩av在线播放亚洲天堂| 欧美一区二区亚洲天堂| 日本午夜诱惑在线观看| 久久日韩人妻中文字幕| 亚洲香蕉av在线一区二区三区| 裸体性做爰免费视频网站| 99热这里有精品久久| 国精品91人妻一区二区| 国产女同一区二区三区久久| 一区二区三区欧美日韩在线| 亚洲av一区二区三区| 午夜神马福利激情视频| 欧美日韩精品综合国产| 97久久久人妻精品一区| 国产精品蜜臀av在线一区| 欧美日韩精品亚洲成人精品| 国产免费成人午夜免费视频|