成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖解JVM分代垃圾回收流程與算法的選擇

開(kāi)發(fā) 后端 算法
本文對(duì)JVM的分代垃圾回收進(jìn)行了詳細(xì)的圖解。JVM的垃圾收集有三種收集器:串行,并行以及并發(fā)收集器。文章對(duì)如何選擇合適的垃圾收集算法也進(jìn)行了詳細(xì)的圖解和介紹。

本文來(lái)自和你在一起的博客,介紹JVM的分代垃圾回收流程,并比較了不同的垃圾收集算法。

分代垃圾回收流程示意

分代垃圾回收流程 

分代垃圾回收流程 

分代垃圾回收流程 

分代垃圾回收流程 

#p#

選擇合適的垃圾收集算法

串行收集器

串行收集器 

用單線程處理所有垃圾回收工作,因?yàn)闊o(wú)需多線程交互,所以效率比較高。但是,也無(wú)法使用多處理器的優(yōu)勢(shì),所以此收集器適合單處理器機(jī)器。當(dāng)然,此收集器也可以用在小數(shù)據(jù)量(100M左右)情況下的多處理器機(jī)器上。可以使用-XX:+UseSerialGC打開(kāi)。

并行收集器

并行收集器

對(duì)年輕代進(jìn)行并行垃圾回收,因此可以減少垃圾回收時(shí)間。一般在多線程多處理器機(jī)器上使用。使用-XX:+UseParallelGC.打開(kāi)。并行收集器在J2SE5.0第六6更新上引入,在Java SE6.0中進(jìn)行了增強(qiáng)--可以對(duì)年老代進(jìn)行并行收集。如果年老代不使用并發(fā)收集的話,默認(rèn)是使用單線程進(jìn)行垃圾回收,因此會(huì)制約擴(kuò)展能力。使用-XX:+UseParallelOldGC打開(kāi)。

使用-XX:ParallelGCThreads=<N>設(shè)置并行垃圾回收的線程數(shù)。此值可以設(shè)置與機(jī)器處理器數(shù)量相等。

此收集器可以進(jìn)行如下配置:

最大垃圾回收暫停:指定垃圾回收時(shí)的最長(zhǎng)暫停時(shí)間,通過(guò)-XX:MaxGCPauseMillis=<N>指定。<N>為毫秒.如果指定了此值的話,堆大小和垃圾回收相關(guān)參數(shù)會(huì)進(jìn)行調(diào)整以達(dá)到指定值。設(shè)定此值可能會(huì)減少應(yīng)用的吞吐量。

吞吐量:吞吐量為垃圾回收時(shí)間與非垃圾回收時(shí)間的比值,通過(guò)-XX:GCTimeRatio=<N>來(lái)設(shè)定,公式為1/(1+N)。例如,-XX:GCTimeRatio=19時(shí),表示5%的時(shí)間用于垃圾回收。默認(rèn)情況為99,即1%的時(shí)間用于垃圾回收。

并發(fā)收集器

可以保證大部分工作都并發(fā)進(jìn)行(應(yīng)用不停止),垃圾回收只暫停很少的時(shí)間,此收集器適合對(duì)響應(yīng)時(shí)間要求比較高的中、大規(guī)模應(yīng)用。使用-XX:+UseConcMarkSweepGC打開(kāi)。

并發(fā)收集器

并發(fā)收集器主要減少年老代的暫停時(shí)間,他在應(yīng)用不停止的情況下使用獨(dú)立的垃圾回收線程,跟蹤可達(dá)對(duì)象。在每個(gè)年老代垃圾回收周期中,在收集初期并發(fā)收集器 會(huì)對(duì)整個(gè)應(yīng)用進(jìn)行簡(jiǎn)短的暫停,在收集中還會(huì)再暫停一次。第二次暫停會(huì)比第一次稍長(zhǎng),在此過(guò)程中多個(gè)線程同時(shí)進(jìn)行垃圾回收工作。

并發(fā)收集器使用處理器換來(lái)短暫的停頓時(shí)間。在一個(gè)N個(gè)處理器的系統(tǒng)上,并發(fā)收集部分使用K/N個(gè)可用處理器進(jìn)行回收,一般情況下1<=K<=N/4。

在只有一個(gè)處理器的主機(jī)上使用并發(fā)收集器,設(shè)置為incremental mode模式也可獲得較短的停頓時(shí)間。

浮動(dòng)垃圾:由于在應(yīng)用運(yùn)行的同時(shí)進(jìn)行垃圾回收,所以有些垃圾可能在垃圾回收進(jìn)行完成時(shí)產(chǎn)生,這樣就造成了“Floating Garbage”,這些垃圾需要在下次垃圾回收周期時(shí)才能回收掉。所以,并發(fā)收集器一般需要20%的預(yù)留空間用于這些浮動(dòng)垃圾。

Concurrent Mode Failure:并發(fā)收集器在應(yīng)用運(yùn)行時(shí)進(jìn)行收集,所以需要保證堆在垃圾回收的這段時(shí)間有足夠的空間供程序使用,否則,垃圾回收還未完成,堆空間先滿了。這種情況下將會(huì)發(fā)生“并發(fā)模式失敗”,此時(shí)整個(gè)應(yīng)用將會(huì)暫停,進(jìn)行垃圾回收。

啟動(dòng)并發(fā)收集器:因?yàn)椴l(fā)收集在應(yīng)用運(yùn)行時(shí)進(jìn)行收集,所以必須保證收集完成之前有足夠的內(nèi)存空間供程序使用,否則會(huì)出現(xiàn)“Concurrent Mode Failure”。通過(guò)設(shè)置-XX:CMSInitiatingOccupancyFraction=<N>指定還有多少剩余堆時(shí)開(kāi)始執(zhí)行并發(fā)收集

小結(jié)

串行處理器:

#t#--適用情況:數(shù)據(jù)量比較小(100M左右);單處理器下并且對(duì)響應(yīng)時(shí)間無(wú)要求的應(yīng)用。

--缺點(diǎn):只能用于小型應(yīng)用

并行處理器:

--適用情況:“對(duì)吞吐量有高要求”,多CPU、對(duì)應(yīng)用響應(yīng)時(shí)間無(wú)要求的中、大型應(yīng)用。舉例:后臺(tái)處理、科學(xué)計(jì)算。

--缺點(diǎn):垃圾收集過(guò)程中應(yīng)用響應(yīng)時(shí)間可能加長(zhǎng)

并發(fā)處理器:

--適用情況:“對(duì)響應(yīng)時(shí)間有高要求”,多CPU、對(duì)應(yīng)用響應(yīng)時(shí)間有較高要求的中、大型應(yīng)用。舉例:Web服務(wù)器/應(yīng)用服務(wù)器、電信交換、集成開(kāi)發(fā)環(huán)境。

責(zé)任編輯:yangsai 來(lái)源: JavaEye博客
相關(guān)推薦

2021-11-05 15:23:20

JVM回收算法

2017-04-25 14:39:55

JVM內(nèi)存Java

2010-09-27 09:01:26

JVM分代垃圾回收

2017-08-04 10:53:30

回收算法JVM垃圾回收器

2011-12-05 12:51:58

JVMJava

2010-01-06 09:28:08

JVM分代垃圾回收

2012-01-10 11:19:35

JavaJVM

2010-09-26 13:29:46

JVM垃圾回收

2022-03-21 11:33:11

JVM垃圾回收器垃圾回收算法

2022-01-20 10:34:49

JVM垃圾回收算法

2009-12-25 16:15:31

JVM垃圾回收算法

2012-01-10 14:25:36

JavaJVM

2012-01-09 16:53:36

JavaJVM

2022-06-10 07:13:29

JVM垃圾回收

2009-12-30 10:14:29

JVM垃圾回收

2022-06-22 09:54:45

JVM垃圾回收Java

2023-08-08 10:29:55

JVM優(yōu)化垃圾回收

2025-01-06 08:22:41

2010-09-25 15:33:19

JVM垃圾回收

2021-02-04 10:43:52

開(kāi)發(fā)技能代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 三极网站 | 在线一级片 | 婷婷丁香综合网 | 女人一区| 天天躁日日躁狠狠的躁天龙影院 | 午夜欧美| 亚洲综合在线播放 | wwwww在线观看 | 午夜码电影| 欧美日韩大片 | 国产综合视频 | 91麻豆精品国产91久久久更新资源速度超快 | 狠狠影院| 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 日韩成人中文字幕 | 一级午夜aaa免费看三区 | 成人国产综合 | 成人妇女免费播放久久久 | 精品国产一区二区三区日日嗨 | 成人av电影网 | 精品国产欧美一区二区三区成人 | 日韩欧美成人一区二区三区 | 精品av | 狠狠狠色丁香婷婷综合久久五月 | 我要看免费一级毛片 | 欧美一区二区三区久久精品视 | 日韩视频在线播放 | 91精品国产综合久久国产大片 | 中文字幕av免费 | 欧美在线亚洲 | 欧美v日韩| 激情五月婷婷综合 | 免费观看www | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 亚洲成人一区 | 成人午夜看片 | 亚洲视频免费在线观看 | 国产免费一区二区三区网站免费 | 天天综合网7799精品 | 男女视频在线免费观看 | 午夜在线视频一区二区三区 |