国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

垃圾回收器

這篇具有很好參考價(jià)值的文章主要介紹了垃圾回收器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

垃圾回收器就是垃圾回收的實(shí)踐者,隨著JDK的發(fā)展,垃圾回收器也在不斷的更迭,在不同的場(chǎng)合下使用不同的垃圾回收器,這也是JVM調(diào)優(yōu)的一部分。

1.垃圾回收器的分類

  • 按線程可分為單線程(串行)垃圾回收器和多線程(并行)垃圾回收器。

  • 按工作模式可分為獨(dú)占式和并發(fā)式垃圾回收器。

  • 按工作的區(qū)間可分為年輕代垃圾回收器和老年代垃圾回收器。

2.GC的性能指標(biāo)

GC的性能主要看:

  1. 吞吐量,運(yùn)行用戶代碼所占的總運(yùn)行時(shí)間比例。

  2. 垃圾收集開銷,垃圾收集所占總運(yùn)行時(shí)間的比例。

  3. 暫停時(shí)間,在垃圾回收時(shí),工作線程暫??偦ㄙM(fèi)的時(shí)間。

  4. 對(duì)象的存活時(shí)間,一個(gè)對(duì)象從創(chuàng)建到被回收所經(jīng)歷的時(shí)間。

3.HotSpot的垃圾回收器

垃圾回收器,JVM,jvm,java,算法

3.1CMS

CMS稱Concurrent Mark Sweep,并發(fā)標(biāo)記清除,它在垃圾清除時(shí)可以使工作線程和GC線程并發(fā)執(zhí)行,所以在垃圾收集的過程中用戶的體驗(yàn)感會(huì)好很多。

CMS垃圾回收的過程:

  1. 初始標(biāo)記:工作線程暫停,GC標(biāo)記線程單獨(dú)工作。

  2. 并發(fā)標(biāo)記:工作線程和GC線程一起執(zhí)行。

  3. 重新標(biāo)記:工作線程暫停,GC標(biāo)記線程單獨(dú)工作。

  4. 并發(fā)清理:工作線程和GC線程一起執(zhí)行。

如下圖所示:

垃圾回收器,JVM,jvm,java,算法

?CMS的優(yōu)點(diǎn):

  • 可以做到并發(fā)收集,提升用戶的體驗(yàn)感。

CMS的缺點(diǎn):

  • CMS是基于標(biāo)記——清除算法的,會(huì)存在內(nèi)存碎片。

  • CMS在并發(fā)階段,CPU資源有限,在并發(fā)執(zhí)行下還是占用了一定的資源的,總吞吐量會(huì)變低。

  • CMS無法處理浮動(dòng)垃圾。

4.三色標(biāo)記算法

從CMS垃圾收集器開始,引入了三色標(biāo)記算法,就是將對(duì)象的顏色分為了黑、灰、白三種顏色。

黑色:表示該對(duì)象確定為存活對(duì)象。

灰色:對(duì)象已經(jīng)被掃描,但是還未掃描此對(duì)象下的引用。

白色:表示此對(duì)象不可達(dá),為垃圾對(duì)象。

三色標(biāo)記的過程:

  1. 初始確定GC Roots根為黑色對(duì)象。

  2. 將GC Roots根下關(guān)聯(lián)的對(duì)象標(biāo)記為灰色。

  3. 下一次掃描灰色對(duì)象,先將灰色變?yōu)楹谏?,之后將其下的引用?biāo)記為灰色。

  4. 一直重復(fù),直到?jīng)]有灰色對(duì)象。

  5. 黑色則為存活對(duì)象,白色為垃圾對(duì)象。

三色標(biāo)記可能出現(xiàn)的問題:

漏標(biāo)

垃圾回收器,JVM,jvm,java,算法?

????????因?yàn)镃MS中的工作線程和GC線程并發(fā)執(zhí)行的,此時(shí)A確定為黑色,B,C為灰色,正常情況下下次應(yīng)該掃描B了,但是假如此時(shí)A與B失去了關(guān)聯(lián)引用,我們發(fā)現(xiàn)此時(shí)B為灰色,并不能立即直接列為垃圾對(duì)象(B就為浮動(dòng)垃圾),而是需要等到下次GC掃描時(shí),才會(huì)發(fā)現(xiàn)B是垃圾對(duì)象。

錯(cuò)標(biāo)

垃圾回收器,JVM,jvm,java,算法

????????這種情況是B和D開始已經(jīng)失去了關(guān)聯(lián),然后將D標(biāo)記為白色,表示垃圾對(duì)象,此時(shí)如果突然A和D建立了引用,但是D已經(jīng)標(biāo)記為白色了,之后不在會(huì)掃描了,之后D就會(huì)被當(dāng)為垃圾對(duì)象回收。

解決錯(cuò)標(biāo)問題的策略:

????????我們發(fā)現(xiàn)錯(cuò)標(biāo)遠(yuǎn)比漏標(biāo)更為嚴(yán)重,錯(cuò)標(biāo)在同時(shí)滿足下面兩種情況時(shí)才會(huì)發(fā)生:

垃圾回收器,JVM,jvm,java,算法

打破這兩種情況的任意一種即可解決錯(cuò)標(biāo)問題,即利用原始快照或者增量更新。

原始快照:在斷開之時(shí),快照將此引用保存下,之后這次掃描完,在以B根重新掃描一次。

增量更新:等建立聯(lián)系之后,以A根再掃描一次。

5.G1(Garbage First)垃圾優(yōu)先回收器

G1可以在延遲可控的情況下,盡可能多的增大吞吐量,是一款面向服務(wù)端的垃圾收集器,其將堆劃分為多個(gè)小區(qū)域,對(duì)各區(qū)域內(nèi)的垃圾數(shù)量進(jìn)行實(shí)時(shí)檢測(cè),優(yōu)先收集垃圾數(shù)量最多的,運(yùn)用在內(nèi)存較大的應(yīng)用上。

6.JDK8默認(rèn)使用的垃圾回收器

年輕代使用 Parallel Scavenge GC

老年代使用 Parallel Old GC

?文章來源地址http://www.zghlxwxcb.cn/news/detail-673584.html

?

?

到了這里,關(guān)于垃圾回收器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JVM】13. 垃圾回收器

    2023年05月29日
    瀏覽(25)
  • JVM之垃圾回收器

    JVM之垃圾回收器

    垃圾回收常見面試題: 如何判斷對(duì)象是否死亡。 簡(jiǎn)單的介紹一下強(qiáng)引用、軟引用、弱引用、虛引用。虛引用與軟引用和弱引用的區(qū)別、使用軟引用能帶來的好處 如何判斷一個(gè)常量是廢棄常量 如何判斷一個(gè)類是無用的類 垃圾收集有哪些算法,各自的特點(diǎn)? HotSpot 為什么要分

    2024年02月14日
    瀏覽(25)
  • JVM基礎(chǔ)(6)——JVM垃圾回收器簡(jiǎn)介

    JVM基礎(chǔ)(6)——JVM垃圾回收器簡(jiǎn)介

    作者簡(jiǎn)介:大家好,我是smart哥,前中興通訊、美團(tuán)架構(gòu)師,現(xiàn)某互聯(lián)網(wǎng)公司CTO 聯(lián)系qq:184480602,加我進(jìn)群,大家一起學(xué)習(xí),一起進(jìn)步,一起對(duì)抗互聯(lián)網(wǎng)寒冬 學(xué)習(xí)必須往深處挖,挖的越深,基礎(chǔ)越扎實(shí)! 階段1、深入多線程 階段2、深入多線程設(shè)計(jì)模式 階段3、深入juc源碼解析

    2024年01月23日
    瀏覽(27)
  • JVM垃圾回收器G1詳解

    JVM垃圾回收器G1詳解

    在我們應(yīng)用程序所應(yīng)對(duì)的業(yè)務(wù)越來越龐大、復(fù)雜,用戶越來越多,沒有GC就不能保證應(yīng)用程序正常進(jìn)行,而經(jīng)常造成STW的GC又跟不上實(shí)際的需求,我們需要不斷地嘗試對(duì)GC進(jìn)行優(yōu)化。G1(Garbage-First)垃圾回收器是在Java7 update4之后引入的一個(gè)新的垃圾回收器,是當(dāng)今收集器技術(shù)發(fā)

    2024年02月09日
    瀏覽(20)
  • JVM常見的垃圾回收器(詳細(xì))

    JVM常見的垃圾回收器(詳細(xì))

    1、Young為年輕代出發(fā)的垃圾回收器。 2、Old為老觸發(fā)的垃圾回收器。 3、連線代表的是垃圾回收器的組合。CMS 和Serial Old連線代表CMS一旦不行了,Serial Old上場(chǎng)。 1、什么是STW? STW是Stop-The-World縮寫: 是在垃圾回收算法執(zhí)?過程當(dāng)中,將JVM內(nèi)存凍結(jié)丶應(yīng)用程序停頓的?種狀態(tài)。

    2024年02月08日
    瀏覽(31)
  • JVM基礎(chǔ)(8)——CMS垃圾回收器

    JVM基礎(chǔ)(8)——CMS垃圾回收器

    作者簡(jiǎn)介:大家好,我是smart哥,前中興通訊、美團(tuán)架構(gòu)師,現(xiàn)某互聯(lián)網(wǎng)公司CTO 聯(lián)系qq:184480602,加我進(jìn)群,大家一起學(xué)習(xí),一起進(jìn)步,一起對(duì)抗互聯(lián)網(wǎng)寒冬 學(xué)習(xí)必須往深處挖,挖的越深,基礎(chǔ)越扎實(shí)! 階段1、深入多線程 階段2、深入多線程設(shè)計(jì)模式 階段3、深入juc源碼解析

    2024年01月16日
    瀏覽(17)
  • 說一下 JVM 有哪些垃圾回收器?

    說一下 JVM 有哪些垃圾回收器?

    如果說垃圾收集算法是內(nèi)存回收的方法論,那么垃圾收集器就是內(nèi)存回收的具體實(shí)現(xiàn)。下圖展示了7種作用于不同分代的收集器,其中用于回收新生代的收集器包括Serial、ParNew、Parallel Scavenge,回收老年代的收集器包括SerialOld、Parallel Old、CMS,還有用于回收整個(gè)Java堆的G1收集器

    2024年02月22日
    瀏覽(20)
  • JVM — JDK11垃圾回收器 ZGC

    JVM — JDK11垃圾回收器 ZGC

    1. ZGC介紹 ZGC(The Z Garbage Collector)是 JDK 11 中推出的一款低延遲垃圾回收器,為實(shí)現(xiàn)以下幾個(gè)目標(biāo)而誕生的垃圾回收器,停頓時(shí)間不超過 10ms,停頓時(shí)間不會(huì)因堆變大而變長(zhǎng),支持 8MB~4TB 級(jí)別的堆(未來支持 16TB) 2. ZGC內(nèi)存和原理 2.1 ZGC內(nèi)存分布 ZGC 與傳統(tǒng)的 CMS、G1 不同、它沒

    2024年02月13日
    瀏覽(21)
  • JVM的組件、自動(dòng)垃圾回收的工作原理、分代垃圾回收過程、可用的垃圾回收器類型

    JVM的組件、自動(dòng)垃圾回收的工作原理、分代垃圾回收過程、可用的垃圾回收器類型

    https://www.processon.com/diagraming/64c8aa11c07d99075d934311 https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html 年輕代是所有新對(duì)象被分配和老化的地方。當(dāng)年輕代填滿時(shí),這會(huì)導(dǎo)致minor garbage collection,minor gc會(huì)回收掉很多的游離對(duì)象。游離的年輕代很快就被收集起來。一些幸存的

    2024年02月14日
    瀏覽(65)
  • 【jvm系列-10】深入理解jvm垃圾回收器的種類以及內(nèi)部的執(zhí)行原理

    【jvm系列-10】深入理解jvm垃圾回收器的種類以及內(nèi)部的執(zhí)行原理

    JVM系列整體欄目 內(nèi)容 鏈接地址 【一】初識(shí)虛擬機(jī)與java虛擬機(jī) https://blog.csdn.net/zhenghuishengq/article/details/129544460 【二】jvm的類加載子系統(tǒng)以及jclasslib的基本使用 https://blog.csdn.net/zhenghuishengq/article/details/129610963 【三】運(yùn)行時(shí)私有區(qū)域之虛擬機(jī)棧、程序計(jì)數(shù)器、本地方法棧 https

    2024年02月05日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包