官术网_书友最值得收藏!

1.3.2 復(fù)制算法

復(fù)制算法的實現(xiàn)也有很多種,可以使用兩個分區(qū),也可以使用多個分區(qū)。使用兩個分區(qū)時內(nèi)存的利用率只有50%;使用多個分區(qū)(如3個分區(qū)),則可以提高內(nèi)存的使用率。我們這里演示把堆空間分為1個新生代(分為3個分區(qū):Eden、Survivor0、Survivor1)、1個老生代的收集過程。

普通對象創(chuàng)建的時候都是放在Eden區(qū),S0和S1分別是兩個存活區(qū)。第一次垃圾收集前S0和S1都為空,在垃圾收集后,Eden和S0里面的活躍對象(即可以通過根集合到達的對象)都放入了S1區(qū),如圖1-1所示。

圖1-1 復(fù)制算法第一次回收

回收后Mutator繼續(xù)運行并產(chǎn)生垃圾,在第二次運行前Eden和S1都有活躍對象,在垃圾收集后,Eden和S1里面的活躍對象(即可以通過根節(jié)點到達的對象)都被放入到S0區(qū),一直這樣循環(huán)收集,如圖1-2所示。

圖1-2 復(fù)制算法第二次回收

主站蜘蛛池模板: 洛阳市| 昔阳县| 惠州市| 南丰县| 军事| 远安县| 牙克石市| 通许县| 达拉特旗| 新闻| 大宁县| 珠海市| 新竹市| 绩溪县| 剑川县| 汾西县| 宁化县| 江永县| 灵武市| 临漳县| 西华县| 石阡县| 塔河县| 如皋市| 襄城县| 临桂县| 马尔康县| 清河县| 视频| 定西市| 延川县| 华宁县| 漯河市| 淮安市| 白朗县| 雷山县| 栾川县| 普宁市| 额尔古纳市| 孟连| 梓潼县|