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 } |