Java和.NET中的垃圾回收機(jī)制比較

相同點(diǎn):

在楚雄州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,楚雄州網(wǎng)站建設(shè)費(fèi)用合理。

都采用了分代的機(jī)制。

都支持并發(fā)GC。

都沒有采用引用計(jì)數(shù)方式,而是采用了追蹤技術(shù)。

.NET中,可以通過代碼GC.Collect() 強(qiáng)制要求CLR進(jìn)行垃圾回收(由于垃圾回收是異步的,CLR有一個(gè)專用的線程負(fù)責(zé)垃圾回收,因此,即使調(diào)用GC.Collect,也并不是實(shí)時(shí)的調(diào)用了Finalize,因此要保證確實(shí)調(diào)用了析構(gòu)方法,可以使用語句GC.WaitForPendingFinalizers()來確保析構(gòu)方法真的被運(yùn)行了,參考http://cnn237111.blog.51cto.com/2359144/1343004)

Java中也可以通過System.gc() 強(qiáng)制要求進(jìn)行垃圾回收。(事實(shí)上也僅僅是建議JVM執(zhí)行垃圾回收,JVM并不一定立即做回收行為。)     
       

不同點(diǎn):

CLR預(yù)留了一塊大空間,稱作large object heap (LOH),目的是當(dāng)有大對(duì)象(超過85000字節(jié)的)需要分配空間時(shí),就可以放在這里。

這塊地方和分代機(jī)制的不同之處在于,這個(gè)地方只有當(dāng)發(fā)生full GC的時(shí)候,才會(huì)回收,而且這塊地方不會(huì)被壓縮。

Java中可以通過配置參數(shù),使得大對(duì)象(大于設(shè)定的閾值)直接進(jìn)入老年代(避免在年輕代上做大量的復(fù)制操作)。

JVM回收的內(nèi)存的,僅僅在某些條件下才返回給操作系統(tǒng)。(詳見:http://stackoverflow.com/questions/366658/java-6-excessive-memory-usage#367933)

.NET回收的內(nèi)存,直接給返還給操作系統(tǒng)。

JVM在的垃圾回收機(jī)制,提供了大量的可配置參數(shù)。

而CLR的垃圾回收機(jī)制幾乎沒什么可以配置的(僅有的配置似乎就是工作站模式(Workstation)和服務(wù)器模式(Server))。

都支持并發(fā)GC。JAVA是在老年代上支持并發(fā)GC,采用的CMS收集器。

.NET的并發(fā)GC只在第2代上,并且在工作站模式下才會(huì)有。    

      

Java分成年輕代,老年代,永久代。

.NET分第0代,第1代,第2代。

.NET中采用了標(biāo)記,壓縮的方式。

JAVA由于收集器很多,因此不限于一種算法。

             

年輕代

老年代

方式

Serial收集器

復(fù)制算法

             

單線程,stop the world

SerialOld收集器                  

             

標(biāo)記整理算法

單線程,stop the world                  

ParNew收集器

復(fù)制算法

標(biāo)記整理算法

多線程,stop the world

Parallel Scavenge收集器

復(fù)制算法                
           
多線程,stop the world               

CMS收集器

             

標(biāo)記清除

單線程

G1收集器

復(fù)制

標(biāo)記整理

             

   

Java垃圾回收的幾篇文章

http://www.cnblogs.com/shudonghe/p/3457990.html

http://blog.csdn.net/zhangerqing/article/details/8214365

.NET垃圾回收的幾篇文章

https://msdn.microsoft.com/zh-cn/library/ee787088(v=vs.110).aspx

http://www.mincoder.com/article/4284.shtml

網(wǎng)頁(yè)標(biāo)題:Java和.NET中的垃圾回收機(jī)制比較
網(wǎng)頁(yè)鏈接:http://muchs.cn/article12/jioidc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站改版、面包屑導(dǎo)航商城網(wǎng)站、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化

廣告

聲明:本網(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)

商城網(wǎng)站建設(shè)