国产玉足榨精视频在线_亚洲日韩国产第一区_男人都懂的网站在线观看免费_久久91亞洲精品中文字幕奶水_按摩房技师激情国产精品_无人在线观看视频在线观看_年轻女教师2免费播放_欧洲熟妇色xxⅩx欧美老妇多毛_91爱视频成人在线第一页_欧美日韩中文字幕成人网

日志樣式

廈門公司網(wǎng)站建設(shè)一條龍全包(前世今生原版)前世今生百科百度,

CMS一直是面試中的??键c(diǎn),今天我們用通俗易懂的語言簡單介紹下。垃圾回收器為什么要分區(qū)分代?

如上圖:JVM虛擬機(jī)將堆內(nèi)存區(qū)域分代了,先生代是朝生夕死的區(qū)域,老年代是老不死的區(qū)域,不同的年代對象有不同特性,因此需要不同的垃圾收集器去處理如下圖,黑豎線左邊的區(qū)域都是分代垃圾收集器,G1之后內(nèi)存就不分代了。

單線程垃圾收集器:Serial + Serial OldSerial(SY),Serial Old(SO)是單線程垃圾收集器組合,垃圾收集線程是單線程的,隨著現(xiàn)代內(nèi)存區(qū)域越來越大,SY+SO組合已經(jīng)越來越少了。

垃圾收集的單線程需要STW時(shí)間無疑越長這種組合比較合適較早JDK版本如下圖,用戶線程表示應(yīng)用程序處理過程,垃圾收集線程表示垃圾線程清理垃圾過程,此階段應(yīng)用程序是需要等待垃圾線程STW的

多線程垃圾收集器:PS+PO前面我們說了,單線程垃圾收集器缺點(diǎn)就是當(dāng)內(nèi)存區(qū)域變大,收集效率會很低,那OK,搖身一變,如下圖,多線程垃圾處理器。

值得注意的是:PS+PO組合是JDK1.7,JDK1.8默認(rèn)垃圾收集器通過java -XX:+PrintCommandLineFlags命令可以在Dos界面查看如下圖,該命令可以查看JVM初始化的默認(rèn)參數(shù)。

比如:-XX:InitialHeapSize表示初始化堆大小。

為啥蹦出來個(gè)CMS+ParNew并行處理有了,CMS+ParNew又是干嘛的?其實(shí)PO關(guān)注是吞吐量,而CMS關(guān)注是縮短STW時(shí)間而CMS處理流程更復(fù)雜,至于ParNew,其實(shí)約等于PS,如果你注意最上面一個(gè)圖,你會發(fā)現(xiàn)PS年輕代無法和CMS組合。

所以就多出來了一個(gè)ParNew介紹CMS階段CMS,全名稱Concurrent Mark Sweep,中文釋義并發(fā)標(biāo)記清除,從名字上可以看出算法思想使用標(biāo)記清除算法,下面我們看看CMS簡化處理流程。

初始標(biāo)記只標(biāo)記GC root可達(dá)的第一個(gè)節(jié)點(diǎn)會短暫的STW并發(fā)標(biāo)記用戶線程和垃圾線程同時(shí)進(jìn)行垃圾線程會繼續(xù)向下尋找GCroot,不會有STW但也會有兩個(gè)問題多標(biāo):之前不是垃圾,現(xiàn)在線程出棧引用斷開了變成了垃圾。

也稱為浮動(dòng)垃圾錯(cuò)標(biāo):之前已經(jīng)被標(biāo)注是垃圾,但現(xiàn)在重新引用重新標(biāo)記STW時(shí)間一般低于200毫秒并發(fā)清除并發(fā)清除時(shí),因?yàn)橛脩艟€程和垃圾線程一起工作,如果CMS線程異常,可能會觸發(fā)SO單線程執(zhí)行程序可能會特別緩慢。

劣勢:碎片嚴(yán)重總結(jié)主要簡單介紹了分代垃圾回收器,特別介紹了cms執(zhí)行過程,G1留下次再說吧好了,文章有地方還寫的不清晰希望親們加以指正和點(diǎn)評,喜歡的請點(diǎn)贊加關(guān)注哦點(diǎn)關(guān)注,不迷路,我是叫練,邊叫邊練,公眾號

【叫練】,微信號【jiaolian123abc】。祝大家生活愉快。