src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp

changeset 5120
eba99d16dc6f
parent 5018
b06ac540229e
child 5159
001ec9515f84
     1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Wed May 15 11:05:09 2013 +0200
     1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Wed May 15 10:41:22 2013 -0700
     1.3 @@ -552,19 +552,33 @@
     1.4              young_gen->from_space()->capacity_in_bytes() +
     1.5              young_gen->to_space()->capacity_in_bytes(),
     1.6              "Sizes of space in young gen are out-of-bounds");
     1.7 +
     1.8 +          size_t young_live = young_gen->used_in_bytes();
     1.9 +          size_t eden_live = young_gen->eden_space()->used_in_bytes();
    1.10 +          size_t cur_eden = young_gen->eden_space()->capacity_in_bytes();
    1.11 +          size_t max_old_gen_size = old_gen->max_gen_size();
    1.12            size_t max_eden_size = young_gen->max_size() -
    1.13              young_gen->from_space()->capacity_in_bytes() -
    1.14              young_gen->to_space()->capacity_in_bytes();
    1.15 -          size_policy->compute_generation_free_space(young_gen->used_in_bytes(),
    1.16 -                                   young_gen->eden_space()->used_in_bytes(),
    1.17 -                                   old_gen->used_in_bytes(),
    1.18 -                                   young_gen->eden_space()->capacity_in_bytes(),
    1.19 -                                   old_gen->max_gen_size(),
    1.20 -                                   max_eden_size,
    1.21 -                                   false  /* full gc*/,
    1.22 -                                   gc_cause,
    1.23 -                                   heap->collector_policy());
    1.24  
    1.25 +          // Used for diagnostics
    1.26 +          size_policy->clear_generation_free_space_flags();
    1.27 +
    1.28 +          size_policy->compute_eden_space_size(young_live,
    1.29 +                                               eden_live,
    1.30 +                                               cur_eden,
    1.31 +                                               max_eden_size,
    1.32 +                                               false /* not full gc*/);
    1.33 +
    1.34 +          size_policy->check_gc_overhead_limit(young_live,
    1.35 +                                               eden_live,
    1.36 +                                               max_old_gen_size,
    1.37 +                                               max_eden_size,
    1.38 +                                               false /* not full gc*/,
    1.39 +                                               gc_cause,
    1.40 +                                               heap->collector_policy());
    1.41 +
    1.42 +          size_policy->decay_supplemental_growth(false /* not full gc*/);
    1.43          }
    1.44          // Resize the young generation at every collection
    1.45          // even if new sizes have not been calculated.  This is

mercurial