基于JVM中常見垃圾收集算法介紹-創(chuàng)新互聯(lián)

JVM 中常見的垃圾收集算法有四種:

創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站建設(shè)、成都做網(wǎng)站質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認(rèn)可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式網(wǎng)絡(luò)營銷推廣需求,讓再小的品牌網(wǎng)站制作也能產(chǎn)生價值!

標(biāo)記-清除算法(Mark-Sweep);

復(fù)制算法(Copying);

標(biāo)記-整理(Mark-Compact);

分代收集;

下面我們來一一介紹:

一、標(biāo)記-清除算法(Mark-Sweep)

這是最基礎(chǔ)的垃圾收集算法,算法分為“標(biāo)記”和“清除”兩個階段:首先標(biāo)記出所有需要回收的對象,在標(biāo)記完成后統(tǒng)一回收掉所有被標(biāo)記的對象。它的主要缺點有兩個:一個是效率問題,標(biāo)記和清除效率都不高;另一個是空間問題,標(biāo)記清除后會產(chǎn)生大量不連續(xù)的內(nèi)存碎片,空間碎片太多可能會導(dǎo)致分配大對象時沒有足夠的大的連續(xù)空間,而不得不提前觸發(fā)另一次垃圾收集動作。

二、復(fù)制算法(Copying)

為了解決效率問題,有了“復(fù)制”的算法,他將可用內(nèi)存分為大小相同兩塊。每次只用一塊,當(dāng)一塊空間用完了,就將還存活的對象復(fù)制到另一塊上,然后將剛使用過的內(nèi)存空間一次清理掉。這樣使得每次都是對其中的一塊進行內(nèi)存回收,內(nèi)存分配時也就不用考慮內(nèi)存碎片等復(fù)雜情況。實現(xiàn)簡單,運行高效。只是這種算法的代價是將內(nèi)存縮小到原來的一半,代價太貴了點。實際上,新生代中的對象98%都是朝生夕死,所以不需要按1:1的比例來分內(nèi)存,而是將內(nèi)存分為一塊較大的Eden空間和兩塊較小的Survivor空間,每次使用Eden空間和其中一塊Survivior空間。當(dāng)回收時,將Eden和Survivor中還存活的對象一次性的拷貝到另一塊Suivivior中,最后清理掉Eden和剛用過的Survivor空間。

三、標(biāo)記-整理(Mark-Compact)

復(fù)制收集算法在對象存活率高的時候就要執(zhí)行較多的復(fù)制操作,效率將會變低。更關(guān)鍵的是,如果不想浪費50%的空間,就需要有額外的空間進行分配擔(dān)保用于應(yīng)付半?yún)^(qū)內(nèi)存中所有對象都100%存活的極端情況,所以在老年代一般不能直接選用這種算法。

因此人們提出另外一種“標(biāo)記-整理”(Mark-Compact)算法由于老年代中的對象生存周期都較長,有人提出“標(biāo)記-整理”算法,標(biāo)記過程和“標(biāo)記-清理”一樣,但在清除已死對象的同時會對存活對象進行整理,這樣可以減少碎片空間。

四、分代收集

當(dāng)前商業(yè)虛擬機的垃圾收集都是采用“分代收集”(Generational Collecting)算法,這種算法并沒有什么新的思想出現(xiàn),只是根據(jù)對象不同的存活周期將內(nèi)存劃分為幾塊。一般是把Java堆分作新生代和老年代,這樣就可以根據(jù)各個年代的特點采用最適當(dāng)?shù)氖占惴?。在新生代中,每次垃圾收集時都發(fā)現(xiàn)有大批對象死去,只有少量存活,那就用復(fù)制算法,只要少量復(fù)制成本就可以完成收集。而老年代中因為對象的存活率較高、周期長,就用“標(biāo)記-整理”或“標(biāo)記-清除”算法來回收。

以上這篇基于JVM 中常見垃圾收集算法介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站名稱:基于JVM中常見垃圾收集算法介紹-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article40/djhoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站制作、網(wǎng)站設(shè)計App開發(fā)、響應(yīng)式網(wǎng)站

廣告

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

網(wǎng)站優(yōu)化排名