< prev index next >

src/hotspot/share/gc/g1/g1Policy.cpp

Print this page
rev 56940 : imported patch 8228609-used-vs-copied-bytes
rev 56941 : [mq]: 8228609-kbarrett-review
rev 56942 : imported patch 8227739-merge-scan-rs-update-rs-cost
rev 56946 : imported patch 8227434-g1-predictions-overflow
rev 56952 : [mq]: 8233588-cleanup-survrategroup

@@ -905,16 +905,10 @@
 
 void G1Policy::print_phases() {
   phase_times()->print();
 }
 
-double G1Policy::predict_yg_surv_rate(int age, SurvRateGroup* surv_rate_group) const {
-  TruncatedSeq* seq = surv_rate_group->get_seq(age);
-  guarantee(seq->num() > 0, "There should be some young gen survivor samples available. Tried to access with age %d", age);
-  return _predictor.get_new_unit_prediction(seq);
-}
-
 double G1Policy::accum_yg_surv_rate_pred(int age) const {
   return _short_lived_surv_rate_group->accum_surv_rate_pred(age);
 }
 
 double G1Policy::predict_base_elapsed_time_ms(size_t pending_cards,

@@ -934,14 +928,11 @@
 size_t G1Policy::predict_bytes_to_copy(HeapRegion* hr) const {
   size_t bytes_to_copy;
   if (!hr->is_young()) {
     bytes_to_copy = hr->max_live_bytes();
   } else {
-    assert(hr->age_in_surv_rate_group() != -1, "invariant");
-    int age = hr->age_in_surv_rate_group();
-    double yg_surv_rate = predict_yg_surv_rate(age, hr->surv_rate_group());
-    bytes_to_copy = (size_t) (hr->used() * yg_surv_rate);
+    bytes_to_copy = (size_t) (hr->used() * hr->surv_rate_prediction(_predictor));
   }
   return bytes_to_copy;
 }
 
 double G1Policy::predict_region_elapsed_time_ms(HeapRegion* hr,

@@ -1393,11 +1384,10 @@
 
 void G1Policy::transfer_survivors_to_cset(const G1SurvivorRegions* survivors) {
 
   // Add survivor regions to SurvRateGroup.
   note_start_adding_survivor_regions();
-  finished_recalculating_age_indexes(true /* is_survivors */);
 
   HeapRegion* last = NULL;
   for (GrowableArrayIterator<HeapRegion*> it = survivors->regions()->begin();
        it != survivors->regions()->end();
        ++it) {

@@ -1415,8 +1405,6 @@
 
   // Don't clear the survivor list handles until the start of
   // the next evacuation pause - we need it in order to re-tag
   // the survivor regions from this evacuation pause as 'young'
   // at the start of the next.
-
-  finished_recalculating_age_indexes(false /* is_survivors */);
 }
< prev index next >