Hi,
On 30.01.20 17:05, Roy Zhang wrote:
Dear JVM experts,
In my gc log, there are many objects are allocated to old generations
(ALLOC(Old) logs), current threshold is 15, my objects age is only 1,
i.e, these objects will not be promoted to old generations, i guess is
there any condition when objects will be allocated to old generations
directly in G1 GC? Thanks in advance!
*Excerpt of GC log:*
grep "ALLOC(Old)" gc.log | wc -l
387
grep "thres" gc.log
Desired survivor size 1207959552 bytes, new threshold 15 (max 15)
Desired survivor size 1207959552 bytes, new threshold 15 (max 15)
- age 1: 37707272 bytes, 37707272 total
*JDK version: *
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
G1 only allocates humongous (large) objects directly in old gen, or
during young gc if the object has an age > the current threshold, or if
the survivor space is full.
(Or during evacuation failure, i.e. not enough space to copy young gen
objects somewhere else, entire regions including their live content are
relabelled as old gen, which is similar to "allocate" objects in old gen.
From the log snippet you can't tell what happens here.
Thanks,
Thomas
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use@openjdk.java.net
https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use