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

Print this page




1233 
1234   if (PrintAdaptiveSizePolicy) {
1235     // A little more detail if Verbose is on
1236     if (Verbose) {
1237       gclog_or_tty->print( "  avg_survived: %f"
1238                   "  avg_deviation: %f",
1239                   _avg_survived->average(),
1240                   _avg_survived->deviation());
1241     }
1242 
1243     gclog_or_tty->print( "  avg_survived_padded_avg: %f",
1244                 _avg_survived->padded_average());
1245 
1246     if (Verbose) {
1247       gclog_or_tty->print( "  avg_promoted_avg: %f"
1248                   "  avg_promoted_dev: %f",
1249                   avg_promoted()->average(),
1250                   avg_promoted()->deviation());
1251     }
1252 
1253     gclog_or_tty->print( "  avg_promoted_padded_avg: %f"
1254                 "  avg_pretenured_padded_avg: %f"
1255                 "  tenuring_thresh: %d"
1256                 "  target_size: " SIZE_FORMAT,
1257                 avg_promoted()->padded_average(),
1258                 _avg_pretenured->padded_average(),
1259                 tenuring_threshold, target_size);
1260     tty->cr();
1261   }
1262 
1263   set_survivor_size(target_size);
1264 
1265   return tenuring_threshold;
1266 }
1267 
1268 void PSAdaptiveSizePolicy::update_averages(bool is_survivor_overflow,
1269                                            size_t survived,
1270                                            size_t promoted) {
1271   // Update averages
1272   if (!is_survivor_overflow) {
1273     // Keep running averages on how much survived
1274     _avg_survived->sample(survived);
1275   } else {
1276     size_t survived_guess = survived + promoted;
1277     _avg_survived->sample(survived_guess);
1278   }
1279   avg_promoted()->sample(promoted + _avg_pretenured->padded_average());
1280 
1281   if (PrintAdaptiveSizePolicy) {
1282     gclog_or_tty->print(
1283                   "AdaptiveSizePolicy::update_averages:"
1284                   "  survived: "  SIZE_FORMAT
1285                   "  promoted: "  SIZE_FORMAT
1286                   "  overflow: %s",
1287                   survived, promoted, is_survivor_overflow ? "true" : "false");
1288   }
1289 }
1290 
1291 bool PSAdaptiveSizePolicy::print_adaptive_size_policy_on(outputStream* st)
1292   const {
1293 
1294   if (!UseAdaptiveSizePolicy) return false;
1295 
1296   return AdaptiveSizePolicy::print_adaptive_size_policy_on(
1297                           st,
1298                           PSScavenge::tenuring_threshold());
1299 }


1233 
1234   if (PrintAdaptiveSizePolicy) {
1235     // A little more detail if Verbose is on
1236     if (Verbose) {
1237       gclog_or_tty->print( "  avg_survived: %f"
1238                   "  avg_deviation: %f",
1239                   _avg_survived->average(),
1240                   _avg_survived->deviation());
1241     }
1242 
1243     gclog_or_tty->print( "  avg_survived_padded_avg: %f",
1244                 _avg_survived->padded_average());
1245 
1246     if (Verbose) {
1247       gclog_or_tty->print( "  avg_promoted_avg: %f"
1248                   "  avg_promoted_dev: %f",
1249                   avg_promoted()->average(),
1250                   avg_promoted()->deviation());
1251     }
1252 
1253     gclog_or_tty->print_cr( "  avg_promoted_padded_avg: %f"
1254                 "  avg_pretenured_padded_avg: %f"
1255                 "  tenuring_thresh: %d"
1256                 "  target_size: " SIZE_FORMAT,
1257                 avg_promoted()->padded_average(),
1258                 _avg_pretenured->padded_average(),
1259                 tenuring_threshold, target_size);

1260   }
1261 
1262   set_survivor_size(target_size);
1263 
1264   return tenuring_threshold;
1265 }
1266 
1267 void PSAdaptiveSizePolicy::update_averages(bool is_survivor_overflow,
1268                                            size_t survived,
1269                                            size_t promoted) {
1270   // Update averages
1271   if (!is_survivor_overflow) {
1272     // Keep running averages on how much survived
1273     _avg_survived->sample(survived);
1274   } else {
1275     size_t survived_guess = survived + promoted;
1276     _avg_survived->sample(survived_guess);
1277   }
1278   avg_promoted()->sample(promoted + _avg_pretenured->padded_average());
1279 
1280   if (PrintAdaptiveSizePolicy) {
1281     gclog_or_tty->print_cr(
1282                   "AdaptiveSizePolicy::update_averages:"
1283                   "  survived: "  SIZE_FORMAT
1284                   "  promoted: "  SIZE_FORMAT
1285                   "  overflow: %s",
1286                   survived, promoted, is_survivor_overflow ? "true" : "false");
1287   }
1288 }
1289 
1290 bool PSAdaptiveSizePolicy::print_adaptive_size_policy_on(outputStream* st)
1291   const {
1292 
1293   if (!UseAdaptiveSizePolicy) return false;
1294 
1295   return AdaptiveSizePolicy::print_adaptive_size_policy_on(
1296                           st,
1297                           PSScavenge::tenuring_threshold());
1298 }