G1 young dominated by code root marking
Simone Bordet
simone.bordet at gmail.com
Mon Oct 7 17:17:00 PDT 2013
Hi,
using JDK 8 b109 (see below for details), and I see that when a
concurrent cycle is requested, the young pause is completely dominated
by code root marking.
Below a typical log entry where a total pause of 210 ms spent 155 ms
in code root marking.
Is this normal behaviour ?
Does it depend on the ReservedCodeCacheSize (below at 256 MiB) ?
Any hint to speed this up ?
Thanks !
--------
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b51, mixed mode)
-XX:InitialHeapSize=1073741824 -XX:InitiatingHeapOccupancyPercent=60
-XX:MaxGCPauseMillis=100 -XX:MaxHeapSize=1073741824
-XX:MetaspaceSize=402653184 -XX:+PrintAdaptiveSizePolicy
-XX:+PrintCommandLineFlags -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-XX:ReservedCodeCacheSize=268435456 -XX:+UseCodeCacheFlushing
-XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
0.005: [G1Ergonomics (Heap Sizing) expand the heap, requested
expansion amount: 1073741824 bytes, attempted expansion amount:
1073741824 bytes]
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b51, mixed mode)
2013-10-08T00:41:52.118+0200: [GC pause (G1 Evacuation Pause) (young)
(initial-mark) 56754.114: [G1Ergonomics (CSet Construction) start
choosing CSet, _pending_cards: 2562, predicted base time: 25.80 ms,
remaining time: 74.20 ms, target pause time: 100.00 ms]
56754.114: [G1Ergonomics (CSet Construction) add young regions to
CSet, eden: 154 regions, survivors: 3 regions, predicted young region
time: 65.36 ms]
56754.114: [G1Ergonomics (CSet Construction) finish choosing CSet,
eden: 154 regions, survivors: 3 regions, old: 0 regions, predicted
pause time: 91.15 ms, target pause time: 100.00 ms]
, 0.2012130 secs]
[Parallel Time: 199.3 ms, GC Workers: 2]
[GC Worker Start (ms): Min: 56754114.4, Avg: 56754114.4, Max:
56754114.4, Diff: 0.0]
[Ext Root Scanning (ms): Min: 11.4, Avg: 13.6, Max: 15.7, Diff:
4.4, Sum: 27.1]
[Code Root Marking (ms): Min: 155.7, Avg: 156.1, Max: 156.6,
Diff: 0.9, Sum: 312.3]
[Update RS (ms): Min: 4.9, Avg: 5.3, Max: 5.7, Diff: 0.8, Sum: 10.7]
[Processed Buffers: Min: 6, Avg: 13.5, Max: 21, Diff: 15, Sum: 27]
[Scan RS (ms): Min: 3.8, Avg: 3.8, Max: 3.8, Diff: 0.1, Sum: 7.6]
[Code Root Scanning (ms): Min: 0.1, Avg: 0.1, Max: 0.1, Diff:
0.1, Sum: 0.2]
[Object Copy (ms): Min: 18.1, Avg: 20.3, Max: 22.5, Diff: 4.4, Sum: 40.6]
[Termination (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.0]
[GC Worker Other (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.1]
[GC Worker Total (ms): Min: 199.2, Avg: 199.2, Max: 199.2, Diff:
0.0, Sum: 398.4]
[GC Worker End (ms): Min: 56754313.6, Avg: 56754313.6, Max:
56754313.6, Diff: 0.0]
[Code Root Fixup: 0.2 ms]
[Code Root Migration: 0.0 ms]
[Clear CT: 0.2 ms]
[Other: 1.5 ms]
[Choose CSet: 0.1 ms]
[Ref Proc: 0.5 ms]
[Ref Enq: 0.0 ms]
[Free CSet: 0.4 ms]
[Eden: 154.0M(117.0M)->0.0B(45.0M) Survivors: 3072.0K->6144.0K
Heap: 721.1M(1024.0M)->570.1M(1024.0M)]
[Times: user=0.35 sys=0.00, real=0.21 secs]
--
Simone Bordet
http://bordet.blogspot.com
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz
More information about the hotspot-gc-use
mailing list