[英]G1GC GC logs what do they mean?
我不了解G1GC GC日志的確切含義(添加PrintGCDetails和PrintGCTimeStamps時)。 有人可以闡明語法嗎?
[
GC pause (young), 0.03067078 secs]
[SATB Drain Time: 0.2 ms]
[Parallel Time: 22.6 ms]
[GC Worker Start Time (ms): 165213430.0 165213430.0 165213430.0 165213430.0 165213430.0 165213430.0 165213430.1 165213430.1]
[Update RS (ms): 10.7 10.0 11.1 9.9 9.9 11.2 10.6 8.6
Avg: 10.3, Min: 8.6, Max: 11.2]
[Processed Buffers : 14 8 8 12 9 11 10 8
Sum: 80, Avg: 10, Min: 8, Max: 14]
[Ext Root Scanning (ms): 2.5 2.6 2.9 3.4 3.3 2.7 2.6 2.4
Avg: 2.8, Min: 2.4, Max: 3.4]
[Mark Stack Scanning (ms): 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.2
Avg: 0.3, Min: 0.0, Max: 2.2]
[Scan RS (ms): 4.0 4.1 3.1 3.7 3.9 3.2 3.8 3.9
Avg: 3.7, Min: 3.1, Max: 4.1]
[Object Copy (ms): 4.7 5.3 4.7 4.8 4.7 4.7 4.8 4.7
Avg: 4.8, Min: 4.7, Max: 5.3]
[Termination (ms): 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Avg: 0.0, Min: 0.0, Max: 0.0]
[Termination Attempts : 23 1 26 23 19 29 22 25
Sum: 168, Avg: 21, Min: 1, Max: 29]
[GC Worker End Time (ms): 165213452.3 165213452.3 165213452.3 165213452.3 165213452.3 165213452.3 165213452.3 165213452.3]
[Other: 0.7 ms]
[Clear CT: 0.6 ms]
[Other: 7.3 ms]
[Choose CSet: 0.0 ms]
[ 3329M->3245M(6000M)]
完整GC是什么意思? 它是暫停嗎? 使用哪種GC算法? 為什么G1決定使用它?
5.941: [Full GC 7891K->4756K(6000M), 0.1939233 secs]
很少有信息“是否將暫停並行化?” 用Java的話來說,GC有兩種類型(基於與mutator並發的應用程序)-(1)Stop-the-world(2)Concurrent
世界停止GC進一步細分為-1a)如果GC線程數為1,則停止運行1b)如果GC線程數為1以上,則並行
來自oracle g1gc博客和TechNetwork文章
完整GC是什么意思?
對於G1GC ,任何大於區域大小一半的對象都被視為“大型對象 ”。 這樣的對象在上一代中直接分配到“ 大型區域 s”中。 These Humongous regions are a contiguous set of regions.
在清理階段以及整個垃圾收集周期的標記周期結束時,將Dead Humongous objects are freed
。
為了減少復制開銷,任何疏散暫停均不包括Humongous對象。 完整的垃圾收集周期將龐大的對象壓縮到位。
通常, Full GC可以清理整個堆- 年輕的和終身使用的空間(舊一代)
另一方面,您必須擔心“應用程序線程停止”了多少時間,而與GC類型無關:Young GC或Full GC等。
它是並行的嗎?
YounGC is parallelized but not FullGC
完整的GC: Currently G1 full gc is single threaded and very slow,
我們應該盡量避免使用完整的gcs(來自oracle文章)
使用哪種GC算法?
您是指Young GC / Major GC / Full GC? 從您的日志中,最后一行是Full GC,第一行是YounGC。
為什么G1決定使用它?
解釋了對第一個查詢的響應。
以下是從我可以在G1 GC上在線找到的(相當有限的)材料的幾行之間的閱讀。 (在付費專區后面有2004年的論文,JavaWorld 2008的幻燈片演示,以及G1 GC頁面 。如果還有其他鏈接,請添加它們。)
完整GC是什么意思?
與其他HotSpot GC一樣,堆分為新空間或Eden空間,幸存者空間和舊空間或占有權對象空間。 但是,與其他HotSpot GC不同,G1使用多個區域來保存空間。
通常,G1收集器與應用程序線程並行地遞增運行,將對象跟蹤和“疏散”到其他區域。 但是,似乎收集器有時會遠遠落后於它必須停止的所有操作,並使用所有可用的處理器來收集所有堆區域。 我認為這是一個完整的GC。
它是暫停嗎?
我認為它是並行的,但也可以停止運行。
使用哪種GC算法?
不清楚。
為什么G1決定使用它?
往上看。 它太落后了,堆里堆滿了垃圾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.