Parallel GC
Parallel GC
并行垃圾收集器:在young generation使用mark-copy,在Old Generation使用mark-sweep-compact;且在Young Generation和Old Generation 都會stop-the-world;收集器都使用多線程進(jìn)行標(biāo)記-復(fù)制和標(biāo)記-壓縮。 -XX:ParallelGCThreads=0 ? ? ? ? ? —指定并行垃圾收集器執(zhí)行的線程數(shù)量;默認(rèn)為所在機(jī)器的邏輯核數(shù);當(dāng)邏輯核數(shù)超過8時計算公式為: ? ? ? ? ?ParallelGCThreads = 8 + ((N - 8) * 5/8):N為邏輯核數(shù) 獲取mac的邏輯核數(shù)命令:sysctl hw.logicalcpu Linux查看邏輯核數(shù):cat /proc/cpuinfo| grep "cpu cores” 主要目標(biāo):并行垃圾收集器主要解決的是吞吐量問題,延遲時間任然會存在問題,應(yīng)為會stop-the-world。Minor GC
發(fā)生在Young Generation
1:GC發(fā)生時間
2:GC發(fā)生時間(相對于JVM啟動時間)
3:區(qū)分Minor GC 和 Full GC的標(biāo)志
4:觸發(fā)GC的原因;這里的Allocation Failure表示在Young Generation沒有足夠的空間對數(shù)據(jù)進(jìn)行分配
5:垃圾收集器的名稱;這里的PSYoungGen代表使用并行的mark-copy和stop-the-world收集器清理Young Generation
6:GC執(zhí)行前后數(shù)據(jù)占用空間大小
7:總的Young Generation空間劃分大小
8:GC執(zhí)行前后數(shù)據(jù)占用空間大小
9:堆的總大小
10:GC執(zhí)行持續(xù)的時間(單位為s)
11:
? ? ? ?-user:GC占用CPU時間
? ? ? ?-sys:GC花費在系統(tǒng)調(diào)用或等待系統(tǒng)事件的時間
? ? ? ?-real:停止應(yīng)用的時間;這個時間應(yīng)該接近于(user + sys)/ 垃圾收集使用的線程數(shù)
? ? ? ? ? ? ? ? ? ?-有些活動不是并行化的,real時間會比按公式計算的值大
?
---------------
Full GC
1:GC時間戳
2:GC執(zhí)行時間,以秒為單位,相對于距離JVM啟動的時間
3:GC類型標(biāo)志:Full GC 表示Young Generation 和 Old Generation都以Full GC清理
4:GC觸發(fā)原因:ergonomics表示JVM內(nèi)部自動決定現(xiàn)在是最佳的GC時機(jī)
5:年輕代收集器類型:PSYoungGen表示并行的mark-copy且stop-the-world收集器用于收集Young Generation,通常年輕代數(shù)據(jù)的占有量會減少到0K
6:老年代收集器類型:ParOldGen表示并行的mark-sweep-compact且stop-the-world垃圾收集器被使用在老年代
7:GC執(zhí)行前后老年代數(shù)據(jù)占用空間的大小
8:老年代總的空間大小(數(shù)據(jù)占用的空間+數(shù)據(jù)未占用的空間)
9:GC執(zhí)行前后堆的數(shù)據(jù)占用空間大小
10:堆總的空間大小
11:Metaspace收集:大多數(shù)情況下不會進(jìn)行收集,因為空間足夠大
12:GC花費的時間
13:-user:GC線程占用CPU的時間
? ? ? ? -sys:GC調(diào)用系統(tǒng)的時間或等待系統(tǒng)事件的時間
? ? ? ? -real:應(yīng)用掛起的時間;應(yīng)用掛起的時間應(yīng)接近于(user + sys)/ 線程數(shù)
? ? ? ? ? ? ? ? ? ?-因為有些活動是非并行化的,所以實際時間會超出邏輯時間
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Parallel GC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Owin Katana 的底层源码分析
- 下一篇: 字节的飞聊官网下线