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

簡(jiǎn)單分析java中CMS回收器

 更新時(shí)間:2018年10月09日 11:33:38   投稿:laozhang  
在本篇文章里我們給大家分享了關(guān)于java中CMS回收器的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。

CMS(Concurrent Mark Sweep)回收器

它使用的是標(biāo)記清除算法,同時(shí)又是一個(gè)使用多線程并行回收的垃圾回收器。

CMS主要工作步驟

CMS工作時(shí)主要步驟有初始標(biāo)記、并發(fā)標(biāo)記、預(yù)清理、重新標(biāo)記、并發(fā)清除和并發(fā)重置。其中初始標(biāo)記和重新標(biāo)記是獨(dú)占系統(tǒng)資源的,而預(yù)清理、并發(fā)標(biāo)記、并發(fā)清除和并發(fā)重置是可以和用戶線程一起執(zhí)行的。因此它可以在應(yīng)用程序運(yùn)行過(guò)程中進(jìn)行垃圾回收。

根據(jù)標(biāo)記清除算法,初始標(biāo)記、并發(fā)標(biāo)記和重新標(biāo)記都是為了標(biāo)記出需要回收的對(duì)象。并發(fā)清理則是在標(biāo)記完成后,正是回收垃圾對(duì)象。并發(fā)重置是指在垃圾回收完成后,重新初始化CMS數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),為下一次垃圾回收做好準(zhǔn)備。

在整個(gè)CMS回收過(guò)程中,默認(rèn)情況下,在并發(fā)標(biāo)記之后,會(huì)有一個(gè)預(yù)清理的操作(也可以設(shè)置參數(shù)-XX:CMSPrecleaningEnabled,不進(jìn)行預(yù)清理)。預(yù)清理是并發(fā)的,除了為正式清理做準(zhǔn)備和檢查以外,預(yù)清理還會(huì)嘗試控制一次停頓時(shí)間。由于重新標(biāo)記是獨(dú)占CPU的,如果新生代GC發(fā)生后立即觸發(fā)一次重新標(biāo)記,那么一次停頓時(shí)間可能很長(zhǎng)。為了避免這種情況,預(yù)清理時(shí),會(huì)可以等待一次新生代GC的發(fā)生,然后根據(jù)歷史性能數(shù)據(jù)預(yù)測(cè)一下新生代GC可能發(fā)生的時(shí)間,然后在當(dāng)前時(shí)間和預(yù)測(cè)時(shí)間的中間時(shí)刻,進(jìn)行重新標(biāo)記。這樣,最大程度上避免新生代GC和重新標(biāo)記重合,盡可能減少一次停頓時(shí)間。

CMS主要參數(shù)設(shè)置

-XX:+UseConcMarkSweepGC啟用CMS回收器

-XX:ConcGCThreads 設(shè)置并發(fā)線程數(shù)量

-XX:CMSInitiatingOccupancyFraction 設(shè)置當(dāng)老年代使用率達(dá)到N時(shí),執(zhí)行一次CMS回收。

-XX:+UseCMSCompactAtFullCollection CMS在垃圾收集完成后,進(jìn)行一次碎片整理。

-XX:CMSFullGCsBeforeCompaction 設(shè)置當(dāng)進(jìn)行N次CMS回收后進(jìn)行一次內(nèi)存壓縮。

-XX:+CMSClassUnloadingEnabled 使用CMS機(jī)制回收Perm區(qū)Class數(shù)據(jù)

相關(guān)文章

  • Java8中Stream的詳細(xì)使用方法大全

    Java8中Stream的詳細(xì)使用方法大全

    Java8的另一大亮點(diǎn)Stream,它與java.io包里的InputStream和OutputStream是完全不同的概念,下面這篇文章主要給大家介紹了關(guān)于Java8中Stream詳細(xì)使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java用鄰接表存儲(chǔ)圖的示例代碼

    Java用鄰接表存儲(chǔ)圖的示例代碼

    鄰接表是圖的一種鏈?zhǔn)酱鎯?chǔ)方法,其數(shù)據(jù)結(jié)構(gòu)包括兩部分:節(jié)點(diǎn)和鄰接點(diǎn)。本文將用鄰接表實(shí)現(xiàn)存儲(chǔ)圖,感興趣的小伙伴可以了解一下
    2022-06-06
  • Java鍵值對(duì)Pair的使用方式和操作實(shí)現(xiàn)

    Java鍵值對(duì)Pair的使用方式和操作實(shí)現(xiàn)

    鍵值對(duì)是一種常見的數(shù)據(jù)結(jié)構(gòu),它由一個(gè)唯一的鍵和與之關(guān)聯(lián)的值組成,本文就來(lái)介紹一下Java鍵值對(duì)Pair的使用方式和操作實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 關(guān)于Java中Bean的作用域詳解

    關(guān)于Java中Bean的作用域詳解

    這篇文章主要介紹了關(guān)于Java中Bean的作用域詳解,限定程序中變量的可?范圍叫做作?域,或者說(shuō)在源代碼中定義變量的某個(gè)區(qū)域就叫做作?域,需要的朋友可以參考下
    2023-08-08
  • 解決springboot配置文件組解決自動(dòng)配置屬性無(wú)法注入問(wèn)題

    解決springboot配置文件組解決自動(dòng)配置屬性無(wú)法注入問(wèn)題

    在使用Spring Boot時(shí),可能會(huì)遇到配置文件屬性注入失敗的問(wèn)題,本文描述了一個(gè)案例,其中嘗試使用profile文件組指定不同環(huán)境下的配置文件,但遇到了屬性無(wú)法成功注入的情況,提供的解決辦法是將Spring Boot的版本號(hào)從2.2.0.RELEASE升級(jí)到2.4.0
    2024-09-09
  • JAVA一個(gè)快速排序?qū)崿F(xiàn)代碼

    JAVA一個(gè)快速排序?qū)崿F(xiàn)代碼

    排序有哪幾種方法?請(qǐng)列舉。并用JAVA實(shí)現(xiàn)一個(gè)快速排序.,需要的朋友可以參考下
    2017-02-02
  • Spring Boot 2.x 實(shí)現(xiàn)文件上傳功能

    Spring Boot 2.x 實(shí)現(xiàn)文件上傳功能

    這篇文章主要介紹了Spring Boot 2.x 實(shí)現(xiàn)文件上傳功能,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • spring-spring容器中bean知識(shí)點(diǎn)總結(jié)

    spring-spring容器中bean知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于spring-spring容器中bean知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • Nacos集群模式下服務(wù)無(wú)法注冊(cè)問(wèn)題

    Nacos集群模式下服務(wù)無(wú)法注冊(cè)問(wèn)題

    這篇文章主要介紹了Nacos集群模式下服務(wù)無(wú)法注冊(cè)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java  多線程的三種構(gòu)建方法

    java 多線程的三種構(gòu)建方法

    這篇文章主要介紹了java 多線程的三種構(gòu)建方法的相關(guān)資料,這里提供三種實(shí)現(xiàn)方法,希望大家能夠掌握,很重要的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2017-09-09

最新評(píng)論

枣阳市| 乌兰浩特市| 新建县| 太原市| 仁寿县| 依兰县| 图们市| 浮梁县| 汪清县| 洪洞县| 平邑县| 土默特左旗| 平潭县| 襄汾县| 惠安县| 华池县| 康乐县| 小金县| 上饶市| 永嘉县| 游戏| 临沧市| 黔西县| 黄平县| 龙游县| 红原县| 宜章县| 镇安县| 微山县| 澎湖县| 桑日县| 壤塘县| 邯郸县| 江源县| 多伦县| 渝中区| 武平县| 东阿县| 河池市| 龙陵县| 广元市|