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

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

Java垃圾回收之復(fù)制算法詳解-創(chuàng)新互聯(lián)

之前的Java垃圾回收之標(biāo)記清除算法詳解 會(huì)導(dǎo)致內(nèi)存碎片。下文的介紹的coping算法可以解決內(nèi)存碎片問題。

創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),雅安服務(wù)器托管、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,中國電信成都樞紐中心,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺(tái)以及歐美等多個(gè)國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

概述

如果jvm使用了coping算法,一開始就會(huì)將可用內(nèi)存分為兩塊,from域和to域, 每次只是使用from域,to域則空閑著。當(dāng)from域內(nèi)存不夠了,開始執(zhí)行GC操作,這個(gè)時(shí)候,會(huì)把from域存活的對象拷貝到to域,然后直接把from域進(jìn)行內(nèi)存清理。

應(yīng)用場景

coping算法一般是使用在新生代中,因?yàn)樾律械膶ο笠话愣际浅λ赖?,存活對象的?shù)量并不多,這樣使用coping算法進(jìn)行拷貝時(shí)效率比較高。

jvm將Heap 內(nèi)存劃分為新生代與老年代,又將新生代劃分為Eden(伊甸園) 與2塊Survivor Space(幸存者區(qū)) ,然后在Eden –>Survivor Space 以及From Survivor Space 與To Survivor Space 之間實(shí)行Copying 算法。

不過jvm在應(yīng)用coping算法時(shí),并不是把內(nèi)存按照1:1來劃分的,這樣太浪費(fèi)內(nèi)存空間了。一般的jvm都是8:1。也即是說,Eden區(qū):From區(qū):To區(qū)域的比例是8:1:1

始終有90%的空間是可以用來創(chuàng)建對象的,而剩下的10%用來存放回收后存活的對象。

1、當(dāng)Eden區(qū)滿的時(shí)候,會(huì)觸發(fā)第一次young gc,把還活著的對象拷貝到Survivor From區(qū);當(dāng)Eden區(qū)再次觸發(fā)young gc的時(shí)候,會(huì)掃描Eden區(qū)和From區(qū)域,對兩個(gè)區(qū)域進(jìn)行垃圾回收,經(jīng)過這次回收后還存活的對象,則直接復(fù)制到To區(qū)域,并將Eden和From區(qū)域清空。


2、當(dāng)后續(xù)Eden又發(fā)生young gc的時(shí)候,會(huì)對Eden和To區(qū)域進(jìn)行垃圾回收,存活的對象復(fù)制到From區(qū)域,并將Eden和To區(qū)域清空。


3、可見部分對象會(huì)在From和To區(qū)域中復(fù)制來復(fù)制去,如此交換15次(由JVM參數(shù)MaxTenuringThreshold決定,這個(gè)參數(shù)默認(rèn)是15),最終如果還是存活,就存入到老年代

注意:

  • 萬一存活對象數(shù)量比較多,那么To域的內(nèi)存可能不夠存放,這個(gè)時(shí)候會(huì)借助老年代的空間。

優(yōu)點(diǎn)

在存活對象不多的情況下,性能高,能解決內(nèi)存碎片和Java垃圾回收之標(biāo)記清除算法詳解 中導(dǎo)致的引用更新問題。

缺點(diǎn)

  • 會(huì)造成一部分的內(nèi)存浪費(fèi)。不過可以根據(jù)實(shí)際情況,將內(nèi)存塊大小比例適當(dāng)調(diào)整;
  • 如果存活對象的數(shù)量比較大,coping的性能會(huì)變得很差。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接


網(wǎng)頁題目:Java垃圾回收之復(fù)制算法詳解-創(chuàng)新互聯(lián)
當(dāng)前地址:http://weahome.cn/article/giech.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部