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