< prev index next >

src/hotspot/share/gc/shared/cardGeneration.cpp

Print this page




 191   size_t current_shrink_factor = _shrink_factor;
 192   _shrink_factor = 0;
 193 
 194   // We don't have floating point command-line arguments
 195   // Note:  argument processing ensures that MinHeapFreeRatio < 100.
 196   const double minimum_free_percentage = MinHeapFreeRatio / 100.0;
 197   const double maximum_used_percentage = 1.0 - minimum_free_percentage;
 198 
 199   // Compute some numbers about the state of the heap.
 200   const size_t used_after_gc = used();
 201   const size_t capacity_after_gc = capacity();
 202 
 203   const double min_tmp = used_after_gc / maximum_used_percentage;
 204   size_t minimum_desired_capacity = (size_t)MIN2(min_tmp, double(max_uintx));
 205   // Don't shrink less than the initial generation size
 206   minimum_desired_capacity = MAX2(minimum_desired_capacity, initial_size());
 207   assert(used_after_gc <= minimum_desired_capacity, "sanity check");
 208 
 209     const size_t free_after_gc = free();
 210     const double free_percentage = ((double)free_after_gc) / capacity_after_gc;
 211     log_trace(gc, heap)("TenuredGeneration::compute_new_size:");
 212     log_trace(gc, heap)("    minimum_free_percentage: %6.2f  maximum_used_percentage: %6.2f",
 213                   minimum_free_percentage,
 214                   maximum_used_percentage);
 215     log_trace(gc, heap)("     free_after_gc   : %6.1fK   used_after_gc   : %6.1fK   capacity_after_gc   : %6.1fK",
 216                   free_after_gc / (double) K,
 217                   used_after_gc / (double) K,
 218                   capacity_after_gc / (double) K);
 219     log_trace(gc, heap)("     free_percentage: %6.2f", free_percentage);
 220 
 221   if (capacity_after_gc < minimum_desired_capacity) {
 222     // If we have less free space than we want then expand
 223     size_t expand_bytes = minimum_desired_capacity - capacity_after_gc;
 224     // Don't expand unless it's significant
 225     if (expand_bytes >= _min_heap_delta_bytes) {
 226       expand(expand_bytes, 0); // safe if expansion fails
 227     }
 228     log_trace(gc, heap)("    expanding:  minimum_desired_capacity: %6.1fK  expand_bytes: %6.1fK  _min_heap_delta_bytes: %6.1fK",
 229                   minimum_desired_capacity / (double) K,
 230                   expand_bytes / (double) K,
 231                   _min_heap_delta_bytes / (double) K);




 191   size_t current_shrink_factor = _shrink_factor;
 192   _shrink_factor = 0;
 193 
 194   // We don't have floating point command-line arguments
 195   // Note:  argument processing ensures that MinHeapFreeRatio < 100.
 196   const double minimum_free_percentage = MinHeapFreeRatio / 100.0;
 197   const double maximum_used_percentage = 1.0 - minimum_free_percentage;
 198 
 199   // Compute some numbers about the state of the heap.
 200   const size_t used_after_gc = used();
 201   const size_t capacity_after_gc = capacity();
 202 
 203   const double min_tmp = used_after_gc / maximum_used_percentage;
 204   size_t minimum_desired_capacity = (size_t)MIN2(min_tmp, double(max_uintx));
 205   // Don't shrink less than the initial generation size
 206   minimum_desired_capacity = MAX2(minimum_desired_capacity, initial_size());
 207   assert(used_after_gc <= minimum_desired_capacity, "sanity check");
 208 
 209     const size_t free_after_gc = free();
 210     const double free_percentage = ((double)free_after_gc) / capacity_after_gc;
 211     log_trace(gc, heap)("CardGeneration::compute_new_size:");
 212     log_trace(gc, heap)("    minimum_free_percentage: %6.2f  maximum_used_percentage: %6.2f",
 213                   minimum_free_percentage,
 214                   maximum_used_percentage);
 215     log_trace(gc, heap)("     free_after_gc   : %6.1fK   used_after_gc   : %6.1fK   capacity_after_gc   : %6.1fK",
 216                   free_after_gc / (double) K,
 217                   used_after_gc / (double) K,
 218                   capacity_after_gc / (double) K);
 219     log_trace(gc, heap)("     free_percentage: %6.2f", free_percentage);
 220 
 221   if (capacity_after_gc < minimum_desired_capacity) {
 222     // If we have less free space than we want then expand
 223     size_t expand_bytes = minimum_desired_capacity - capacity_after_gc;
 224     // Don't expand unless it's significant
 225     if (expand_bytes >= _min_heap_delta_bytes) {
 226       expand(expand_bytes, 0); // safe if expansion fails
 227     }
 228     log_trace(gc, heap)("    expanding:  minimum_desired_capacity: %6.1fK  expand_bytes: %6.1fK  _min_heap_delta_bytes: %6.1fK",
 229                   minimum_desired_capacity / (double) K,
 230                   expand_bytes / (double) K,
 231                   _min_heap_delta_bytes / (double) K);


< prev index next >