1282 size_t old_used_bytes_after_gc = _g1->old_regions_count() * HeapRegion::GrainBytes; 1283 size_t humongous_used_bytes_after_gc = _g1->humongous_regions_count() * HeapRegion::GrainBytes; 1284 1285 size_t heap_capacity_bytes_after_gc = _g1->capacity(); 1286 size_t eden_capacity_bytes_after_gc = 1287 (_young_list_target_length * HeapRegion::GrainBytes) - survivor_used_bytes_after_gc; 1288 size_t survivor_capacity_bytes_after_gc = _max_survivor_regions * HeapRegion::GrainBytes; 1289 1290 log_info(gc, heap)("Eden: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", 1291 _eden_used_bytes_before_gc / K, eden_used_bytes_after_gc /K, eden_capacity_bytes_after_gc /K); 1292 log_info(gc, heap)("Survivor: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", 1293 _survivor_used_bytes_before_gc / K, survivor_used_bytes_after_gc /K, survivor_capacity_bytes_after_gc /K); 1294 log_info(gc, heap)("Old: " SIZE_FORMAT "K->" SIZE_FORMAT "K", 1295 _old_used_bytes_before_gc / K, old_used_bytes_after_gc /K); 1296 log_info(gc, heap)("Humongous: " SIZE_FORMAT "K->" SIZE_FORMAT "K", 1297 _humongous_used_bytes_before_gc / K, humongous_used_bytes_after_gc /K); 1298 1299 MetaspaceAux::print_metaspace_change(_metaspace_used_bytes_before_gc); 1300 } 1301 1302 void G1CollectorPolicy::print_phases(double pause_time_sec) { 1303 phase_times()->print(pause_time_sec); 1304 } 1305 1306 void G1CollectorPolicy::adjust_concurrent_refinement(double update_rs_time, 1307 double update_rs_processed_buffers, 1308 double goal_ms) { 1309 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); 1310 ConcurrentG1Refine *cg1r = G1CollectedHeap::heap()->concurrent_g1_refine(); 1311 1312 if (G1UseAdaptiveConcRefinement) { 1313 const int k_gy = 3, k_gr = 6; 1314 const double inc_k = 1.1, dec_k = 0.9; 1315 1316 int g = cg1r->green_zone(); 1317 if (update_rs_time > goal_ms) { 1318 g = (int)(g * dec_k); // Can become 0, that's OK. That would mean a mutator-only processing. 1319 } else { 1320 if (update_rs_time < goal_ms && update_rs_processed_buffers > g) { 1321 g = (int)MAX2(g * inc_k, g + 1.0); 1322 } 1323 } | 1282 size_t old_used_bytes_after_gc = _g1->old_regions_count() * HeapRegion::GrainBytes; 1283 size_t humongous_used_bytes_after_gc = _g1->humongous_regions_count() * HeapRegion::GrainBytes; 1284 1285 size_t heap_capacity_bytes_after_gc = _g1->capacity(); 1286 size_t eden_capacity_bytes_after_gc = 1287 (_young_list_target_length * HeapRegion::GrainBytes) - survivor_used_bytes_after_gc; 1288 size_t survivor_capacity_bytes_after_gc = _max_survivor_regions * HeapRegion::GrainBytes; 1289 1290 log_info(gc, heap)("Eden: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", 1291 _eden_used_bytes_before_gc / K, eden_used_bytes_after_gc /K, eden_capacity_bytes_after_gc /K); 1292 log_info(gc, heap)("Survivor: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", 1293 _survivor_used_bytes_before_gc / K, survivor_used_bytes_after_gc /K, survivor_capacity_bytes_after_gc /K); 1294 log_info(gc, heap)("Old: " SIZE_FORMAT "K->" SIZE_FORMAT "K", 1295 _old_used_bytes_before_gc / K, old_used_bytes_after_gc /K); 1296 log_info(gc, heap)("Humongous: " SIZE_FORMAT "K->" SIZE_FORMAT "K", 1297 _humongous_used_bytes_before_gc / K, humongous_used_bytes_after_gc /K); 1298 1299 MetaspaceAux::print_metaspace_change(_metaspace_used_bytes_before_gc); 1300 } 1301 1302 void G1CollectorPolicy::print_phases(double pause_time_ms) { 1303 phase_times()->print(pause_time_ms); 1304 } 1305 1306 void G1CollectorPolicy::adjust_concurrent_refinement(double update_rs_time, 1307 double update_rs_processed_buffers, 1308 double goal_ms) { 1309 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); 1310 ConcurrentG1Refine *cg1r = G1CollectedHeap::heap()->concurrent_g1_refine(); 1311 1312 if (G1UseAdaptiveConcRefinement) { 1313 const int k_gy = 3, k_gr = 6; 1314 const double inc_k = 1.1, dec_k = 0.9; 1315 1316 int g = cg1r->green_zone(); 1317 if (update_rs_time > goal_ms) { 1318 g = (int)(g * dec_k); // Can become 0, that's OK. That would mean a mutator-only processing. 1319 } else { 1320 if (update_rs_time < goal_ms && update_rs_processed_buffers > g) { 1321 g = (int)MAX2(g * inc_k, g + 1.0); 1322 } 1323 } |