<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          Java垃圾回收新算法

          作者: 時(shí)間:2011-05-20 來(lái)源:網(wǎng)絡(luò) 收藏
          4.1.2具體

          本文引用地址:http://www.ex-cimer.com/article/150730.htm

            (1)程序開(kāi)始運(yùn)行,對(duì)象動(dòng)態(tài)地申請(qǐng)堆區(qū),這時(shí),每個(gè)塊的計(jì)數(shù)器啟動(dòng),根據(jù)引用對(duì)象的標(biāo)記位情況來(lái)改變計(jì)數(shù)器的值,為1則計(jì)數(shù)器加1,8個(gè)計(jì)數(shù)器值放在數(shù)組里,并比較8個(gè)計(jì)數(shù)器值的大小,選取最大的計(jì)數(shù)器所在塊,進(jìn)行掃描。

            (2)掃描出的轉(zhuǎn)移到刪除區(qū),等待被刪除。

            (3)繼續(xù)比較計(jì)數(shù)器值,但已經(jīng)進(jìn)行掃描的塊不參加此后的比較,待刪除的占的空間達(dá)到min值時(shí),器開(kāi)始對(duì)活躍區(qū)壓縮內(nèi)存碎片,并且在刪除區(qū)同時(shí)開(kāi)始進(jìn)行垃圾刪除申請(qǐng)。

            (4)當(dāng)刪除區(qū)的空間達(dá)到了max值時(shí),刪除區(qū)的垃圾還沒(méi)有被刪除,這時(shí)停止活躍區(qū)的掃描,等待刪除區(qū)進(jìn)行垃圾刪除。

            4.2 實(shí)例分析

            看下面一段程序:

            int [][] m1=new int[2][3];

            int [][] m2=new int[2][3];

            m1=m2;

            此例中,第一句是用new語(yǔ)句在堆中為數(shù)組申請(qǐng)了一個(gè)空間,然后用matrix引用此空間的對(duì)象(這里數(shù)組可以理解為對(duì)象),此時(shí)這個(gè)內(nèi)存空間就是有用的。第二句是給matrix賦空值,matrix則不再引用此數(shù)組。此時(shí),這個(gè)空間就是無(wú)用的。

            對(duì)于原來(lái)的,m1引用的數(shù)組在堆中是隨機(jī)存放的,若要查找垃圾,則會(huì)遍歷整個(gè)堆內(nèi)存,先標(biāo)記,然后再清理垃圾。設(shè)耗費(fèi)時(shí)間為T(mén)a。

            m1引用的數(shù)組在堆中是隨機(jī)存放的,所以假設(shè)其放在活躍區(qū)中的cnt[x]區(qū)(x取值為0~7之一),下面分兩種情況來(lái)考慮:

            (1)最好的情況,m1原來(lái)引用的數(shù)組放在cnt1中為數(shù)組cnt[x]中最大的數(shù),則查找到這個(gè)垃圾的時(shí)間為: T8+cnt[x]。

            

            由此可以節(jié)省7Ta/16的時(shí)間。此新可以大大減少垃圾處理所需的時(shí)間。

            語(yǔ)言對(duì)垃圾的處理是利用的垃圾處理器自動(dòng)進(jìn)行的,JVM雖然沒(méi)有明確程序員必須了解垃圾處理器的過(guò)程和實(shí)質(zhì),但是,一個(gè)優(yōu)秀的程序員應(yīng)該掌握和熟悉垃圾處理器的工作機(jī)制,充分利用好內(nèi)存空間,減少不必要的空間浪費(fèi),從而使程序更好地運(yùn)行。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 算法 回收 垃圾 Java

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();