G1GC GC logs what do they mean?

I don’t understand what the GC GGCG logs mean (when adding PrintGCDetails and PrintGCTimeStamps). Can someone shed light on the syntax?

[

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)] 

And what does full GC mean? Is it a pause, is it parallelized? What GC algorithm is used? Why did G1 decide to use it?

 5.941: [Full GC 7891K->4756K(6000M), 0.1939233 secs] 
+4
source share
3 answers

A little information about "This is a pause, is it parallelized?" In Java, GC are two types (based on concurrency with a mutator, i.e. an application) - (1) Stop-the-world (2) Concurrent

Stop-global GC is further subdivided into categories: 1a) Stop-the-world, if the number of GC threads is 1b) In parallel, if the number of GC threads is more than one

+2
source

Below is a reading between the lines of (rather limited) material that I can find on the Internet on the G1 GC. (There's a 2004 paid line document, a slideshow from JavaWorld 2008, and a G1 GC page . If anyone has any other links, add them.)

And what does full GC mean?

As is the case with other GC HotSpot, the heap is divided into New or Eden space, a space for survival and an old or ennobled space of objects. However, unlike other GC HotSpot, G1 uses several areas to store spaces.

Usually, the G1 collector works gradually in parallel with application flows, tracing and "evacuation" of objects to other regions. However, it seems that the collector can sometimes go so far as to stop everything and use all available processors to collect all areas of the heap. I think this is a complete GC.

Is it a pause, is it parallelized?

I think this parallelizes, but also stops in the world.

What GC algorithm is used?

Unclear.

Why did G1 decide to use it?

See above. He went too far and the pile was full of garbage.

0
source

From oracle g1gc blog and technical article

And what does full GC mean?

For G1GC, any object that is larger than half the size of the area is considered a " Humongous object ". Such an object stands out directly in the old generation in the " Humongous region s". These Humongous regions are a contiguous set of regions.

Dead Humongous objects are freed at the end of the labeling cycle during the cleaning phase as well as during the complete garbage collection cycle.

In order to reduce copying overhead, Humongous objects are not paused for evacuation. Complete garbage collection cycles. Own facilities in place.

Usually Full GC cleans the whole bunch - both Young and Retained Spaces (old gene)

On the other hand, you need to worry about how long the "application threads" were stopped regardless of the type of GC: Young GC or Full GC, etc.

Is it a pause, is it parallelized?

YounGC is parallelized but not FullGC

Full GC: Currently G1 full gc is single threaded and very slow, , we should try to avoid full gcs as much as possible (From oracle )

What GC algorithm is used?

Do you mean Young GC / Major GC / Full GC? From your magazines, this is the full GC for the last line and YounGC for the first line.

Why did G1 decide to use it?

Explained in response to the first request.

Regarding fine-tuning G1GC, take a look at the oracle article and related question SE

0
source

Source: https://habr.com/ru/post/1342769/


All Articles