日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

四种常用垃圾收集器

發(fā)布時間:2024/4/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 四种常用垃圾收集器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有沒有人知道并行回收和串行回收的區(qū)別:1. 一個是串行單線程,并行是多線程的回收,串行是單線程,一般來說很少用串行,服務(wù)器一般都是多核的,一般都是并行回收的,并行收集器和串行收集器的區(qū)別是什么呢,在JDK1.5之前,默認(rèn)算法就是串行回收,垃圾收集器如果在回收的時候,他就會停止其他的線程,而且會影響到其他的線程,這也是他的缺點,串行收集一般用于傳統(tǒng)的項目,有些傳統(tǒng)的項目是不會做JVM調(diào)優(yōu)的2. 并行回收,多線程去回收的,多個線程去回收一個垃圾,這一般適合于吞吐量的系統(tǒng),吞吐量你們知道是什么意思嗎,一般你們做高并發(fā)的時候你們會知道,像別人做測試的時候,測試你的網(wǎng)站到底好不好,就是他的吞吐量有多少,并行回收相當(dāng)于多線程回收,一般用在高并發(fā)的項目,一般高并發(fā)的項目都是并行回收的,很少有串行回收的,串行回收性能不好,但是也會停止運行一段時間的,但是時間不是很長,但是我們的肉眼是看不出來,通過拿到其他線程,讓其線程等待一下,讓我的線程進(jìn)行執(zhí)行,這是JVM底層做的,不是通過notify和wait在這里給大家說一下比較常用的收集器,都是圍繞串行和并行回收的,1. Serial收集器Serial收集器一般是比較古老,一般是使用在串行里面的,但是效率會比較高啊,至少是在1.5之前,他可能會產(chǎn)生比較大的停頓,因為它只有一個線程去回收,我之前講過一些垃圾回收算法,第一種叫做標(biāo)記清除算法,還有復(fù)制算法,還有標(biāo)記壓縮算法,還有分代算法,這些算法分別用在什么場景,標(biāo)記清除用在什么場景,新生代還是老年代,一般用到老年代,標(biāo)記清除用在老年代,復(fù)制算法采用在新生代里面,標(biāo)記壓縮是用在老年代還是新生代呢,他一般也是用在老年代里面的,分代算法是把這些算法做一個整合,新生代和老年代做不同的收集,Minor GC和Full GC,這兩個GC分代進(jìn)行回收的,垃圾收集器會使用我們這些算法,全部都會用到的,這個時候可以看到一個效果Serial是用在串行的,像新生代的復(fù)制算法,老年代使用壓縮算法,反正串行回收一般用于小型項目,像我在一開始做JVM調(diào)優(yōu)的時候,用的是串行呢還是并行呢,串行啊,你們看看效果,-XX:+UseSerialGC,串行回收,你們配置怎么配呢,就是這么配的,相當(dāng)于你在用串行收集器,這里還有一個Paralle收集器2. ParNew 收集器默認(rèn)肯定也是穿行的,而且你默認(rèn)并行肯定不好啊,萬一我在單核服務(wù)器里面,那我怎么去進(jìn)行回收呢,肯定默認(rèn)是串行的,只有在JDK1.5的時候采用并行回收,ParNew收集器其實也是Serial里的,只不過是多線程版本,新生代是并行,老年代是用串行,你們知道為什么要新生代使用并行,老年代使用串行,這么設(shè)計的目的是什么,回收率高的就使用并行,回收率不高就使用串行,新生代復(fù)制算法,老年代標(biāo)記壓縮算法,配置-XX:+UseParNewGC ParNew這個參數(shù)就可以新生代使用并行,老年代使用串行,配置+XX:ParalleGCThreads限制線程數(shù)量3. parallel這個其實和ParNew非常的相似,區(qū)別不大,但是講一下,Parallel Scanvenge其實類似于ParNew收集器,這個更加關(guān)注于吞吐量,既然他更加關(guān)注于吞吐量,這個是串行還是并行,采用多線程來掃描并壓縮堆,肯定是并行,特點是停頓時間短,回收率高,對吞吐量要求高,一般應(yīng)用于大型系統(tǒng)4. CMS收集器CMS是在JDK1.7的時候出來的,目前來說還是用的比較流行的,也是以最短的時間回收的收集器,他的核心是怎么去實現(xiàn)的,其中會做初始標(biāo)記和重新標(biāo)記,采用標(biāo)記清除算法,采用多線程掃描堆,對發(fā)現(xiàn)的未使用對象進(jìn)行回收,初始標(biāo)記,并發(fā)標(biāo)記,并發(fā)預(yù)處理,重新標(biāo)記,并發(fā)清除,并發(fā)重置,反正最后一句話,CMS響應(yīng)時間優(yōu)先,減少垃圾收集器的停頓時間,一般使用在服務(wù)器里面,一般大型的服務(wù)器里面,大型的服務(wù)器里面,一般都是用CMS的,CMS收集器Concurrent Mark Sweep,5. G1收集器G1是在CMS上做改進(jìn)的,目前用的最多的是G1收集器,G1收集器最大的特點是什么呢,它吸收了CMS的一些特點,他最大的優(yōu)點是什么呢,他能支持很大的堆,高吞吐量,支持多CPU核垃圾收集線程,而且在主線程暫停的情況下,使用并行收集器,在主線程運行的情況下,使用并發(fā)收集,這個時候就有疑問了,并發(fā)和并行的區(qū)別,并行是同時進(jìn)行,并發(fā)是在同一個處理器上同時處理多個任務(wù),這叫并發(fā),并行是多個處理器或者多核同時處理多個不同的任務(wù),這是他們本質(zhì)上最大的區(qū)別,但是我舉個最明顯的例子,并發(fā)你可以怎么理解呢,并發(fā)是同時一個人吃三個饅頭,而并行是三個人同時在吃三個饅頭,為什么叫并發(fā)編程,而不叫并行編程,你們知道為什么沒有,這個比喻非常通俗易懂,并發(fā)你們這樣理解,一個人同時吃一個饅頭,并行是三個人吃三個饅頭,為什么叫并發(fā)編程,不交并行編程,多線程為什么叫并行執(zhí)行,因為CPU不停的在切換不同的線程執(zhí)行,并發(fā)是一個人同時處理不同的業(yè)務(wù),并行是三個人同時在吃三個饅頭 垃圾收集器 串行與并行收集器 串行回收: JDK1.5前的默認(rèn)算法 缺點是只有一個線程,執(zhí)行垃圾回收時程序停止的時間比較長 并行回收: 多個線程執(zhí)行垃圾回收適合于吞吐量的系統(tǒng),回收時系統(tǒng)會停止運行serial收集器 串行收集器是最古老,最穩(wěn)定以及效率高的收集器,可能會產(chǎn)生較長的停頓,只使用一個線程去回收。新生代、老年代使用串行回收;新生代復(fù)制算法、老年代標(biāo)記-壓縮;垃圾收集的過程中會Stop The World(服務(wù)暫停)一個單線程的收集器,在進(jìn)行垃圾收集時候,必須暫停其他所有的工作線程直到它收集結(jié)束。 特點:CPU利用率最高,停頓時間即用戶等待時間比較長。 適用場景:小型應(yīng)用 通過JVM參數(shù)-XX:+UseSerialGC可以使用串行垃圾回收器。ParNew收集器ParNew收集器其實就是Serial收集器的多線程版本。新生代并行,老年代串行;新生代復(fù)制算法、 老年代標(biāo)記-壓縮 參數(shù)控制:-XX:+UseParNewGC ParNew收集器 -XX:ParallelGCThreads 限制線程數(shù)量 parallel 收集器 Parallel Scavenge收集器類似ParNew收集器,Parallel收集器更關(guān)注系統(tǒng)的吞吐量。 可以通過參數(shù)來打開自適應(yīng)調(diào)節(jié)策略,虛擬機(jī)會根據(jù)當(dāng)前系統(tǒng)的運行情況收集性能監(jiān)控信息, 動態(tài)調(diào)整這些參數(shù)以提供最合適的停頓時間或最大的吞吐量; 也可以通過參數(shù)控制GC的時間不大于多少毫秒或者比例;新生代復(fù)制算法、老年代標(biāo)記-壓縮采用多線程來通過掃描并壓縮堆 特點:停頓時間短,回收效率高,對吞吐量要求高。 適用場景:大型應(yīng)用,科學(xué)計算,大規(guī)模數(shù)據(jù)采集等。 通過JVM參數(shù) XX:+USeParNewGC 打開并發(fā)標(biāo)記掃描垃圾回收器。cms收集器 CMS(Concurrent Mark Sweep)收集器是一種以獲取最短回收停頓時間為目標(biāo)的收集器。 目前很大一部分的Java應(yīng)用都集中在互聯(lián)網(wǎng)站或B/S系統(tǒng)的服務(wù)端上,這類應(yīng)用尤其重視服務(wù)的響應(yīng)速度, 希望系統(tǒng)停頓時間最短,以給用戶帶來較好的體驗。 從名字(包含“Mark Sweep”)上就可以看出CMS收集器是基于“標(biāo)記-清除”算法實現(xiàn)的, 它的運作過程相對于前面幾種收集器來說要更復(fù)雜一些,整個過程分為4個步驟,包括: 初始標(biāo)記(CMS initial mark) 并發(fā)標(biāo)記(CMS concurrent mark) 重新標(biāo)記(CMS remark) 并發(fā)清除(CMS concurrent sweep) 其中初始標(biāo)記、重新標(biāo)記這兩個步驟仍然需要“Stop The World”。初始標(biāo)記僅僅只是標(biāo)記一下GC Roots能直接關(guān)聯(lián)到的對象,速度很快,并發(fā)標(biāo)記階段就是進(jìn)行GC Roots Tracing的過程, 而重新標(biāo)記階段則是為了修正并發(fā)標(biāo)記期間,因用戶程序繼續(xù)運作而導(dǎo)致標(biāo)記產(chǎn)生變動的 那一部分對象的標(biāo)記記錄,這個階段的停頓時間一般會比初始標(biāo)記階段稍長一些,但遠(yuǎn)比并發(fā)標(biāo)記的時間短。 由于整個過程中耗時最長的并發(fā)標(biāo)記和并發(fā)清除過程中,收集器線程都可以與用戶線程一起工作, 所以總體上來說,CMS收集器的內(nèi)存回收過程是與用戶線程一起并發(fā)地執(zhí)行。老年代收集器(新生代使用ParNew)優(yōu)點:并發(fā)收集、低停頓 缺點:產(chǎn)生大量空間碎片、并發(fā)階段會降低吞吐量采用“標(biāo)記-清除”算法實現(xiàn),使用多線程的算法去掃描堆,對發(fā)現(xiàn)未使用的對象進(jìn)行回收。 (1)初始標(biāo)記 (2)并發(fā)標(biāo)記 (3)并發(fā)預(yù)處理 (4)重新標(biāo)記 (5)并發(fā)清除 (6)并發(fā)重置 特點:響應(yīng)時間優(yōu)先,減少垃圾收集停頓時間 適應(yīng)場景:大型服務(wù)器等。 通過JVM參數(shù) -XX:+UseConcMarkSweepGC設(shè)置 g1收集器 在G1中,堆被劃分成 許多個連續(xù)的區(qū)域(region)。采用G1算法進(jìn)行回收,吸收了CMS收集器特點。 特點:支持很大的堆,高吞吐量--支持多CPU和垃圾回收線程--在主線程暫停的情況下,使用并行收集--在主線程運行的情況下,使用并發(fā)收集 實時目標(biāo):可配置在N毫秒內(nèi)最多只占用M毫秒的時間進(jìn)行垃圾回收 通過JVM參數(shù) -XX:+UseG1GC 使用G1垃圾回收器 注意: 并發(fā)是指一個處理器同時處理多個任務(wù)。 并行是指多個處理器或者是多核的處理器同時處理多個不同的任務(wù)。 并發(fā)是邏輯上的同時發(fā)生(simultaneous),而并行是物理上的同時發(fā)生。 來個比喻:并發(fā)是一個人同時吃三個饅頭,而并行是三個人同時吃三個饅頭。

?

總結(jié)

以上是生活随笔為你收集整理的四种常用垃圾收集器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清成人 | 欧美有码在线观看 | 人妻少妇精品久久 | 国产乱淫av公 | 亚洲一区精品在线观看 | 亚洲av无码乱码在线观看富二代 | 精品无人国产偷自产在线 | 国产一级做a | 欧美r级在线 | 免费h漫禁漫天天堂 | 欧洲美女粗暴牲交免费观看 | 国产免费无码一区二区 | 日本成人黄色片 | 中文字幕高清视频 | 寂寞人妻瑜伽被教练日 | たちの熟人妻av一区二区 | 网爆门在线 | 毛片天天看| 爽天天天天天天天 | 一区在线观看 | 九色福利视频 | 国产啊啊啊啊 | 韩国三色电费2024免费吗怎么看 | 一级特黄aa大片欧美 | 美日韩黄色| 99视频一区二区 | 午夜视频一区二区三区 | 日韩精品一区二区亚洲av观看 | 亚洲色图欧美另类 | 日韩欧美在线观看一区二区 | 国语对白做受欧美 | 免费网站在线高清观看 | 日本视频免费在线 | 亚洲AV无码成人精品区明星换面 | www.爆操| 中文字幕日产av | 亚洲青草视频 | 激情小说亚洲色图 | jizz教师| 99久久99久久久精品棕色圆 | 大学生一级一片全黄 | 国产精品suv一区二区三区 | 两根大肉大捧一进一出好爽视频 | 午夜视频日韩 | 人人爱人人搞 | 天天搞夜夜爽 | 婷婷爱五月 | 一级黄色片在线看 | 九久久久久 | 日韩一区二区三区免费在线观看 | 国产a级免费视频 | 国产精品综合一区二区 | 日韩在线免费视频观看 | 日本大尺度电影免费观看全集中文版 | 国产成人在线播放 | 国产亚洲一区二区三区 | 亚洲福利一区二区 | 美女久久久久久久 | 色香蕉在线视频 | 阿v天堂在线 | 亚洲天堂成人网 | 天天看天天色 | 久久丝袜美腿 | 人人妻人人爽一区二区三区 | 一区二区三区黄色 | 亚洲一区二区三区日韩 | 国产中文欧美日韩在线 | 日韩激情网 | 国产日产精品一区二区三区四区 | 新天堂在线 | 亚洲精品国产无码 | 性欧美videos另类艳妇3d | 亚洲自拍偷拍一区二区 | 久久人人看 | 日本波多野结衣在线 | 国产自产视频 | 日韩电影在线观看一区 | 哺乳喂奶一二三区乳 | 国产视频精品免费 | 囯产精品一品二区三区 | 欧美视频不卡 | 日本电影一区 | 天天射天天色天天干 | 五月丁香 | 麻豆精品免费观看 | 91日本在线观看 | 亚洲欧美日韩综合一区二区 | 婷婷激情五月网 | 美国黄色一级毛片 | 久久99中文字幕 | 性欧美大战久久久久久久久 | 小泽玛丽亚在线观看 | 91美女视频网站 | 欧美成人精品激情在线观看 | 欧美性猛交xxxx乱大交 | 国产剧情av引诱维修工 | 91久久国产视频 | 日本成人精品 | 国精产品一区一区三区免费视频 |