Updated fix for jdk10 Generational Partial Heuristics...

Aleksey Shipilev shade at redhat.com
Tue Sep 12 16:51:27 UTC 2017


On 09/12/2017 06:40 PM, Christine Flood wrote:
> Webrev:  http://cr.openjdk.java.net/~chf/GenerationalHeuristics/

 *) The correct idiom is:

  if (FLAG_IS_DEFAULT(ShenandoahRefProcFrequency)) {
    FLAG_SET_DEFAULT(ShenandoahRefProcFrequency, 1);
  }

  We use unconditional sets when option should be disabled without user intervening with it.

 *) Seems to me that entire deal with initialize() method can be gone if ShenandoahPartialHeuristics
constructor accepts the size_t parameter for from_idxs initialization. You can seed it off the
static const:

  static const size_t DEFAULT_THRESHOLD = 100;

  ShenandoahGenerationalPartialHeuristics() : ShenandoahPartialHeuristics(DEFAULT_THRESHOLD) {
    if (FLAG_IS_DEFAULT(ShenandoahPartialInboundThreshold)) {
      FLAG_SET_DEFAULT(ShenandoahPartialInboundThreshold, DEFAULT_THRESHOLD);
    }
  }

 *) This line is superfluous:

  942     log_info(gc)("Initializing partial collection from_idxs");

 *) Do the block at new line:

 1233     if (maybe_add_heap_region(contender, collection_set)) { count++;}

 if (maybe_add_heap_region(contender, collection_set)) {
   count++;
 }


Thanks,
-Aleksey



More information about the shenandoah-dev mailing list