欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java中有幾種垃圾收集器-創(chuàng)新互聯(lián)

這篇文章主要講解了“Java中有幾種垃圾收集器”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java中有幾種垃圾收集器”吧!

10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有南鄭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

垃圾收集器就是垃圾收集算法的具體實(shí)現(xiàn)。它們分別是新生代的:Serial、ParNew、ParallelScavenge老年代的:SerialOld、ParallelOld、CMS以及適用于新生代和老年代的G1。算上jdk11的ZGC目前一共是八種垃圾收集器。

Serial收集器

Serial是最早的垃圾收集器,這是一個(gè)單線程收集器,它只適用一個(gè)CPU或者是一條收集線去執(zhí)行回收任務(wù)。

ParNew收集器

ParNew是一個(gè)新生代的多線程的收集器,它相當(dāng)于是Serial的多線程版本。它的一些參數(shù)配置和Serial基本完全相同。只不過ParNew收集器在工作的時(shí)候,是多個(gè)線程工作的

ParNew適合在多個(gè)CPU場(chǎng)景下使用,而我們的線上服務(wù)器基本都是多核CPU,所以,使用新生代的ParNew搭配老年代的CMS收集器還是挺常見的,我所在的部門的系統(tǒng)線上就是使用的ParNew+CMS組合。與Serial相同的是,ParNew在進(jìn)行垃圾回收的時(shí)候,也會(huì)暫停所用的用戶線程。

ParallelScavenge收集器

ParallelScavenge也是一個(gè)新生代收集器,并且也是一個(gè)多線程收集器,ParallelScavenge關(guān)注的點(diǎn)是應(yīng)用的吞吐量,吞吐量=用戶代碼運(yùn)行時(shí)間/用戶運(yùn)行代碼時(shí)間+GC時(shí)間,它提供了兩個(gè)參數(shù)用來控制吞吐量,分別是控制較大垃圾收集停頓時(shí)間的-XX:MaxGCPauseMillis參數(shù)和直接設(shè)置吞吐量大小的-XX:GCTimeRatio參數(shù)。GCTimeRatio參數(shù)的值是一個(gè)大于0且小于100的整數(shù),也就是垃圾收集時(shí)間占總時(shí)間的比率,相當(dāng)于是吞吐量的倒數(shù)。高吞吐量可以高效的利用CPU時(shí)間,盡快完成計(jì)算任務(wù),因此,ParallelScavenge收集器也用于需要密集計(jì)算不需要進(jìn)行用戶交互的一些后臺(tái)。

SerivalOld收集器

SerivalOld收集器是垃圾收集的老年代版本,也是一個(gè)單線程收集器。

ParallelOld收集器

ParallelOld收集器是ParallelScavenge的老年代版本。可以使用ParallelScavenge+ParallelOld組合,在注重吞吐量和CPU資源敏感的場(chǎng)合可以優(yōu)先考慮ParallellSCavenge和ParallellOld組合。

CMS(ConcurrentMarkSweep)收集器

CMS(ConcurrentMarkSweep),并發(fā)標(biāo)記清除,這是一種追求低停頓時(shí)間為的收集器。互聯(lián)網(wǎng)時(shí)代,用戶體驗(yàn)為王,垃圾收集的時(shí)間越短,給用戶帶來的體驗(yàn)就越好。CMS收集器整個(gè)回收過程可以分為四個(gè)步驟:

初始標(biāo)記(CMSinintmark)

并發(fā)標(biāo)記(CMSconcurrentmark)

重新標(biāo)記(CMSremarkmark)

并發(fā)清除(CMSconcurrentsweep)

G1(GarBage-First)收集器

G1收集器是一款面向服務(wù)端的收集器,也就是說,它將低停頓時(shí)間作為終極目標(biāo)。G1與其他垃圾收集器的區(qū)別是它可以控制垃圾收集時(shí)間在某一個(gè)范圍之內(nèi)。與CMS垃圾收集的運(yùn)行過程類似,它分為初始標(biāo)記,并發(fā)標(biāo)記,最終標(biāo)記,篩選回收。G1之所以能夠?qū)⑼nD時(shí)間控制在一個(gè)指定的時(shí)間內(nèi),就是因?yàn)樗梢赃x擇性的進(jìn)行回收。

G1嘗試著去滿足最小的停頓時(shí)間,在G1中,停頓時(shí)間是可以設(shè)置的,是可控制的,之所以可以建立可預(yù)測(cè)的停頓時(shí)間模型,是因?yàn)镚1避免了在java堆中進(jìn)行全區(qū)域的垃圾收集。傳統(tǒng)的新生代老年代的內(nèi)存模型被多個(gè)大小相等的獨(dú)立區(qū)域(Region)所取代。如下圖所示,雖然新生代和老年代的概念還保留著,但是他們不再是物理隔離的了,他們都是由Region所組成。G1在清除階段是有選擇性的,它會(huì)根據(jù)設(shè)置的停頓時(shí)間,選擇回報(bào)率較大的Region。Region可以說是G1回收器一次回收的最小單元。即每一次回收都是回收N個(gè)Region。這個(gè)N是多少,主要受到G1回收的效率和用戶設(shè)置的軟實(shí)時(shí)目標(biāo)有關(guān)。

ZGC

Z垃圾收集器(ZGC)是可伸縮的低延遲垃圾收集器。ZGC可以同時(shí)執(zhí)行所有昂貴的工作,而不會(huì)將應(yīng)用程序線程的執(zhí)行停止超過10ms,這使得它適合于要求低延遲和/或使用非常大的堆(數(shù)TB)的應(yīng)用程序。

目前ZGC沒有分代,每次GC都會(huì)標(biāo)記整個(gè)堆,將堆分為2M(small),32M(medium),n*2M(large)三種大小的頁面(Page)來管理,根據(jù)對(duì)象的大小來判斷在哪種頁面分配,大部分對(duì)象標(biāo)記和對(duì)象轉(zhuǎn)移都是可以和應(yīng)用線程并發(fā)。

感謝各位的閱讀,以上就是“Java中有幾種垃圾收集器”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java中有幾種垃圾收集器這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

文章題目:Java中有幾種垃圾收集器-創(chuàng)新互聯(lián)
分享地址:http://chinadenli.net/article40/edoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈企業(yè)網(wǎng)站制作網(wǎng)站設(shè)計(jì)公司云服務(wù)器網(wǎng)站營(yíng)銷全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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í)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司