真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

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

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

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

分代收集;

下面我們來一一介紹:

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

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

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

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

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

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

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

四、分代收集

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

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


分享題目:基于JVM中常見垃圾收集算法介紹-創(chuàng)新互聯(lián)
標(biāo)題URL:http://weahome.cn/article/djhoeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部