RFR 7097567: G1: abstract and encapsulate collector phases and transitions between them

Mikael Gerdin mikael.gerdin at oracle.com
Wed Jan 28 10:03:33 UTC 2015


Hi Derek,

On 2015-01-27 23:41, Derek White wrote:
> Review request!
>
> This is a change Ramki did before he left that didn't get checked in.
> The basic idea is to move a bunch fields that encapsulate collector
> state from G1CollectorPolicy into a separate class " G1CollectorState".
>
> Thanks in advance!
>
>   - Derek
>
> /Bug/: https://bugs.openjdk.java.net/browse/JDK-7097567
> /Webrev/: http://cr.openjdk.java.net/~drwhite/7097567/webrev.00/

This is just a high level review to begin with, I didn't look too 
carefully at all the state changes.

I agree that it's a good idea to factor out the state changes but I'm 
not convinced that the CollectorState should logically be a member of 
the collector policy object.
To me it feels more like a G1 heap would have a policy object and a 
state object as members.

If the policy object needs to interact with the state object they can of 
course do that via a pointer to the state object from the policy.

Besides that I don't like the fact that the state object is declared in 
the g1CollectorPolicy.hpp header, I'd prefer it if you could move that 
to a separate new header file.

The change to compactibleFreeListSpace seems like an accident since it 
has nothing to do with G1 state changes whatsoever.

/Mikael

> /Ran/:
>
>   * jtreg
>   * jprt
>   * refworkload (looks good, but improvement is unexplained).
>
>     ./compare -r Logs/ref.1/ Logs/cms.1/
>     ==============================================================================
>     Logs/ref.1/:
>        Benchmark           Samples        Mean Stdev             Geomean
>     Weight
>        specjbb2000              15   660639.27 8546.73
>          First_Warehouse        15    91712.47 2908.19
>          Last_Warehouse         15   660639.27 8546.73
>          rw.runtime             15      604.00 0.00
>        specjbb2005              15   372212.33 8495.85
>          first                  15    44054.38 2190.33
>          interval_average       15     7596.13 173.44
>          last                   15   372212.33 8495.85
>          last_warehouse         15        8.00 0.00
>          overall_average        15   342311.21 27049.43
>          peak                   15   418062.71 21056.23
>          peak_warehouse         15        2.87 1.25
>          rw.runtime             15      458.40 0.99
>        specjvm98                15      950.96 10.07
>          compress               15      695.97 7.54
>          db                     15      361.98 6.56
>          jack                   15     1461.28 51.26
>          javac                  15      522.44 13.72
>          jess                   15     1145.71 15.97
>          mpegaudio              15     1197.56 14.91
>          mtrt                   15     2670.94 137.46
>          rw.runtime             15       36.07 0.59
>     ==============================================================================
>     Logs/cms.1/:
>        Benchmark           Samples        Mean     Stdev %Diff     P
>     Significant
>        specjbb2000              15   646579.89   5829.25 -2.13
>     0.000          Yes
>          First_Warehouse        15    86084.97   1381.09 -6.14
>     0.000          Yes
>          Last_Warehouse         15   646579.89   5829.25 -2.13
>     0.000          Yes
>          rw.runtime             15      604.33      0.49 -0.06
>     0.019            *
>        specjbb2005              15   372333.48   8449.27 0.03
>     0.969            *
>          first                  15    44028.81    591.86 -0.06
>     0.966            *
>          interval_average       15     7598.67    172.40 0.03
>     0.968            *
>          last                   15   372333.48   8449.27 0.03
>     0.969            *
>          last_warehouse         15        8.00      0.00 0.00
>     1.000            *
>          overall_average        15   347967.16   8974.17 1.65
>     0.453            *
>          peak                   15   427459.90  13498.58 2.25
>     0.159            *
>          peak_warehouse         15        2.27      0.46 20.93
>     0.097            *
>          rw.runtime             15      458.47      0.52 -0.01
>     0.819            *
>        specjvm98                15      891.61      9.95 -6.24
>     0.000          Yes
>          compress               15      696.34      6.57 0.05
>     0.888            *
>          db                     15      363.90      5.55 0.53
>     0.395            *
>          jack                   15     1402.76     48.98 -4.01
>     0.003          Yes
>          javac                  15      453.21      8.57 -13.25
>     0.000          Yes
>          jess                   15     1024.87      7.81 -10.55
>     0.000          Yes
>          mpegaudio              15     1146.54     37.59 -4.26
>     0.000          Yes
>          mtrt                   15     2369.88     70.39 -11.27
>     0.000          Yes
>          rw.runtime             15       38.00      0.38 -5.36
>     0.000          Yes
>     ==============================================================================
>        * - Not Significant: A non-zero %Diff for the mean could be
>     noise. If the
>            %Diff is 0, an actual difference may still exist. In either
>     case, more
>            samples would be needed to detect an actual difference in
>     sample means.
>            Alpha for this run: 0.010
>
>


More information about the hotspot-gc-dev mailing list