< prev index next >

src/share/vm/gc/g1/g1CollectorPolicy.cpp

Print this page




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     }


< prev index next >