最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java垃圾回收之復(fù)制算法詳解

 更新時(shí)間:2018年10月26日 16:02:08   作者:Sam哥哥  
今天小編就為大家分享一篇關(guān)于Java垃圾回收之復(fù)制算法詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

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

概述

如果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à)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Springboot整合MongoDB進(jìn)行CRUD操作的兩種方式(實(shí)例代碼詳解)

    Springboot整合MongoDB進(jìn)行CRUD操作的兩種方式(實(shí)例代碼詳解)

    這篇文章主要介紹了Springboot整合MongoDB進(jìn)行CRUD操作的兩種方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Springboot整合fastdfs實(shí)現(xiàn)分布式文件存儲(chǔ)

    Springboot整合fastdfs實(shí)現(xiàn)分布式文件存儲(chǔ)

    本文主要介紹了Springboot整合fastdfs實(shí)現(xiàn)分布式文件存儲(chǔ),詳細(xì)闡述了Springboot應(yīng)用程序如何與FastDFS進(jìn)行集成及演示了如何使用Springboot和FastDFS實(shí)現(xiàn)分布式文件存儲(chǔ),感興趣的可以了解一下
    2023-08-08
  • JavaWeb中文編碼問題實(shí)例講解

    JavaWeb中文編碼問題實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于JavaWeb中文編碼問題方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下
    2019-09-09
  • 淺析java中String類型中“==”與“equal”的區(qū)別

    淺析java中String類型中“==”與“equal”的區(qū)別

    這篇文章主要介紹了淺析java中String類型中“==”與“equal”的區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java持久化XML文件配置解析

    Java持久化XML文件配置解析

    這篇文章主要為大家介紹了Java持久化XML文件配置解析,當(dāng)你在使用?Java?編程語言?來編寫軟件時(shí),實(shí)現(xiàn)持久化配置的方式。有需要的朋友可以借鑒參考下,希望能夠有所幫助<BR>
    2022-03-03
  • Spring MVC Mybatis多數(shù)據(jù)源的使用實(shí)例解析

    Spring MVC Mybatis多數(shù)據(jù)源的使用實(shí)例解析

    項(xiàng)目需要從其他網(wǎng)站獲取數(shù)據(jù),因?yàn)槭桥R時(shí)加的需求,這篇文章主要介紹了Spring MVC Mybatis多數(shù)據(jù)源的使用實(shí)例解析,需要的朋友可以參考下
    2016-12-12
  • 使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件快速創(chuàng)建Spring Boot/Cloud工程(圖解)

    使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件快速創(chuàng)建Spring

    這篇文章主要介紹了使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件快速創(chuàng)建Spring Boot/Cloud工程(圖解),需要的朋友可以參考下
    2018-01-01
  • spring集成httpclient配置的詳細(xì)過程

    spring集成httpclient配置的詳細(xì)過程

    spring框架是一個(gè)非常強(qiáng)大的框架這里就不多說了,那么主要是介紹spring與httpclient的整合集成過程,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Spring MVC請求參數(shù)的獲取教程指南

    Spring MVC請求參數(shù)的獲取教程指南

    本文介紹了SpringMVC中如何獲取各種類型的請求參數(shù),包括基本類型、POJO、數(shù)組、集合以及RESTful風(fēng)格的參數(shù),還討論了請求參數(shù)中文亂碼的解決方案,參數(shù)綁定的注解如@RequestParam,以及自定義類型轉(zhuǎn)換器的實(shí)現(xiàn),需要的朋友可以參考下
    2024-10-10
  • Spring Boot快速搭建Spring框架教程

    Spring Boot快速搭建Spring框架教程

    這篇文章主要為大家詳細(xì)介紹了Spring Boot快速搭建Spring框架教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論

宁河县| 东光县| 龙陵县| 乡宁县| 沁水县| 家居| 罗定市| 西充县| 鄂伦春自治旗| 公主岭市| 育儿| 鄱阳县| 万山特区| 北票市| 遂溪县| 泊头市| 娱乐| 白沙| 康乐县| 互助| 灵台县| 枞阳县| 遵义市| 紫云| 石柱| 罗源县| 宁城县| 吉木乃县| 夹江县| 桃源县| 大丰市| 鸡东县| 如皋市| 宁陕县| 高阳县| 苏尼特左旗| 新宾| 阳新县| 万荣县| 兴山县| 浏阳市|