RFR (S): Full GC mark without liveness stats

Aleksey Shipilev shade at redhat.com
Tue Nov 1 21:35:59 UTC 2016


Hi,

I am not entirely sure this is a correct assumption, but if I read the
code right, we don't need region liveness stats when doing mark for Full
GC? Because we compact everything anyway?

If we hack this away:
 http://cr.openjdk.java.net/~shade/shenandoah/fullgc-no-live-stats/webrev.01/

...then there is a repeatable +10% improvement for mark phase:

# Before:
Full GC Times          =  94.29 s (avg =  8571.54 ms)
  Mark                 =  34.92 s (avg =  3174.47 ms)
    Drain Queues       =  34.90 s (avg =  3172.31 ms)
    Weak References    =   0.00 s (avg =     0.33 ms)
    Class Unloading    =   0.01 s (avg =     0.80 ms)
  Calculate Addresses  =  12.66 s (avg =  1150.98 ms)
  Adjust Pointers      =  24.92 s (avg =  2265.87 ms)
  Copy Objects         =  21.61 s (avg =  1964.49 ms)

# After:
Full GC Times          =  90.51 s (avg =  8228.46 ms)
  Mark                 =  31.17 s (avg =  2833.41 ms)
    Drain Queues       =  31.14 s (avg =  2831.36 ms)
    Weak References    =   0.00 s (avg =     0.24 ms)
    Class Unloading    =   0.01 s (avg =     0.77 ms)
  Calculate Addresses  =  12.59 s (avg =  1144.15 ms)
  Adjust Pointers      =  25.01 s (avg =  2273.75 ms)
  Copy Objects         =  21.58 s (avg =  1961.43 ms)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list