求大神指點(diǎn)下翔悠,n設(shè)置的越小业崖,表示吞吐量越高,垃圾收集時(shí)間越久蓄愁,n設(shè)置的越大双炕,吞吐量越低,垃圾收集時(shí)間越短撮抓,這個(gè)結(jié)論是對(duì)的嗎妇斤?
一:并行收集器的使用場(chǎng)景
適用場(chǎng)景: 多處理器、吞吐量為第一優(yōu)先級(jí)丹拯、應(yīng)用程序?qū)和r(shí)間沒(méi)有要求
不適用場(chǎng)景:?jiǎn)翁幚砥髡境㈨憫?yīng)時(shí)間為第一優(yōu)先級(jí),且對(duì)暫停時(shí)間有要求
二:JVM并行收集器配置
-XX:+UseParallelGC : 啟用并行收集器
-XX:ParallelGCThreads=n:設(shè)置垃圾收集器線(xiàn)程數(shù)量
-XX:MaxGCPauseMillis=<N>:最大垃圾收集暫停時(shí)間乖酬,默認(rèn)情況下死相,沒(méi)有暫停時(shí)間目標(biāo)。如果指定了暫停時(shí)間目標(biāo)咬像,則會(huì)調(diào)整堆大小和垃圾回收的其它參數(shù)算撮,這些調(diào)整可能會(huì)導(dǎo)致降低垃圾收集的總吞吐量双肤,并且不能始終滿(mǎn)足設(shè)置的暫停時(shí)間目標(biāo)。
-XX:GCTimeRatio=19(n):默認(rèn)吞吐量設(shè)置為99钮惠,垃圾收集器吞吐量目標(biāo)設(shè)置茅糜,吞吐量是根據(jù)垃圾收集時(shí)間和應(yīng)用程序時(shí)間來(lái)衡量的,垃圾收集時(shí)間和應(yīng)用程序時(shí)間的比率為1/(1+n),當(dāng)XX:GCTimeRatio=19時(shí)素挽,那么比率為1/20或者5%蔑赘,那么垃圾收集時(shí)間占用了5%的時(shí)間,應(yīng)用程序時(shí)間為95%预明。n設(shè)置的越小缩赛,表示吞吐量越高,垃圾收集時(shí)間越久撰糠,n設(shè)置的越大酥馍,吞吐量越低,垃圾收集時(shí)間越短阅酪。這里是對(duì)的嗎旨袒?
占用內(nèi)存:最大堆占用內(nèi)存使用命令-XMX<N>指定,只要滿(mǎn)足其它目標(biāo)术辐,收集器就有一個(gè)隱含的目標(biāo)砚尽,最小堆的大小。
三:并行收集器的特點(diǎn)
使用多個(gè)線(xiàn)程用于執(zhí)行垃圾回收辉词,并行執(zhí)行次要和主要收集必孤,以進(jìn)一步減少垃圾回收開(kāi)銷(xiāo),增大JVM吞吐量瑞躺。在單處理器上敷搪,并行收集器性能可能比串行收集器要差(多線(xiàn)程需要同步,和上下文切換)幢哨。當(dāng)運(yùn)行大中型的應(yīng)用程序時(shí)赡勘,它通常在擁有兩個(gè)處理器的時(shí)候性能要優(yōu)于串行收集器,并且當(dāng)有兩個(gè)處理器以上時(shí)嘱么,通常表現(xiàn)比串行收集器更好狮含。
缺點(diǎn):需要對(duì)暫停時(shí)間沒(méi)有要求顽悼,在多線(xiàn)程小收集過(guò)程中曼振,由于年輕代到永久代的晉升,可能會(huì)產(chǎn)生一些碎片蔚龙,可能導(dǎo)致碎片效應(yīng)冰评。
四:并行收集器的目標(biāo)優(yōu)先權(quán)
暫停時(shí)間>吞吐量>占用內(nèi)存
只有滿(mǎn)足暫停時(shí)間目標(biāo),才能解決吞吐量目標(biāo)木羹,只有滿(mǎn)足暫停時(shí)間和吞吐量目標(biāo)才能滿(mǎn)足占用內(nèi)存目標(biāo)甲雅。
五:代大小調(diào)整
代大小自動(dòng)調(diào)整是用于滿(mǎn)足目標(biāo)而調(diào)整的解孙。
收集器保留的平均暫停時(shí)間等統(tǒng)計(jì)信息將在每個(gè)收集的末尾更新。然后進(jìn)行確定是否滿(mǎn)足目標(biāo)的測(cè)試抛人,例外的是弛姜,明確的垃圾收集(例如:System.gc())在統(tǒng)計(jì)和調(diào)整后代的大小方面被忽略。
增長(zhǎng)和縮小代的尺寸是通過(guò)增量來(lái)完成的妖枚,這些增量是一代的固定尺寸的百分比廷臼,以便一代產(chǎn)生向上或者向下自期望的尺寸。成長(zhǎng)和萎縮以不同的速度完成绝页。默認(rèn)情況下荠商,一代以20%的增量增長(zhǎng),以5%的增量收縮续誉。 增長(zhǎng)百分比由-XX:YoungGenerationSizeIncrement=``<Y>
年輕一代和-XX:TenuredGenerationSizeIncrement=``<T>
終身代的命令行選項(xiàng)控制莱没。通過(guò)命令行標(biāo)志調(diào)整生成收縮的百分比-XX:AdaptiveSizeDecrementScaleFactor=``<D>
。如果增長(zhǎng)增量為X%酷鸦,那么收縮的減少量是X / D百分比饰躲。如果收集器決定在啟動(dòng)時(shí)增長(zhǎng),則會(huì)在增量中添加百分比臼隔。這種補(bǔ)充劑隨著收集的數(shù)量而衰減属铁,并且沒(méi)有長(zhǎng)期影響,補(bǔ)充的目的是為了提高啟動(dòng)性能躬翁,收縮百分比沒(méi)有補(bǔ)充焦蘑。
如果未滿(mǎn)足暫停時(shí)間目標(biāo),則一次只縮小一代的大小盒发,如果兩代的暫停時(shí)間多高于目標(biāo)例嘱,那么只縮小最大暫停時(shí)間代的大小。
如果未滿(mǎn)足吞吐量目標(biāo)宁舰,那么增加兩大的大小拼卵,每個(gè)多與其對(duì)垃圾收集總時(shí)間的貢獻(xiàn)成比例增長(zhǎng)。例如:如果年輕代垃圾收集是收集總時(shí)間的25%蛮艰,并且年輕一代的增量是25%腋腮,那么年輕一代將增加5%。