< prev index next >

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

Print this page

        

@@ -31,10 +31,11 @@
 #include "gc/shared/genOopClosures.inline.hpp"
 #include "gc/shared/generationSpec.hpp"
 #include "gc/shared/space.inline.hpp"
 #include "memory/iterator.hpp"
 #include "memory/memRegion.hpp"
+#include "logging/log.hpp"
 #include "runtime/java.hpp"
 
 CardGeneration::CardGeneration(ReservedSpace rs,
                                size_t initial_byte_size,
                                CardTableRS* remset) :

@@ -94,18 +95,15 @@
     space()->set_end((HeapWord*)_virtual_space.high());
 
     // update the space and generation capacity counters
     update_counters();
 
-    if (Verbose && PrintGC) {
       size_t new_mem_size = _virtual_space.committed_size();
       size_t old_mem_size = new_mem_size - bytes;
-      gclog_or_tty->print_cr("Expanding %s from " SIZE_FORMAT "K by "
-                      SIZE_FORMAT "K to " SIZE_FORMAT "K",
+    log_trace(gc, heap)("Expanding %s from " SIZE_FORMAT "K by " SIZE_FORMAT "K to " SIZE_FORMAT "K",
                       name(), old_mem_size/K, bytes/K, new_mem_size/K);
     }
-  }
   return result;
 }
 
 bool CardGeneration::expand(size_t bytes, size_t expand_bytes) {
   assert_locked_or_safepoint(Heap_lock);

@@ -131,14 +129,12 @@
     success = grow_by(aligned_bytes);
   }
   if (!success) {
     success = grow_to_reserved();
   }
-  if (PrintGC && Verbose) {
     if (success && GC_locker::is_active_and_needs_gc()) {
-      gclog_or_tty->print_cr("Garbage collection disabled, expanded heap instead");
-    }
+    log_trace(gc, heap)("Garbage collection disabled, expanded heap instead");
   }
 
   return success;
 }
 

@@ -170,16 +166,14 @@
   _bts->resize(new_word_size);
   MemRegion mr(space()->bottom(), new_word_size);
   // Shrink the card table
   GenCollectedHeap::heap()->barrier_set()->resize_covered_region(mr);
 
-  if (Verbose && PrintGC) {
     size_t new_mem_size = _virtual_space.committed_size();
     size_t old_mem_size = new_mem_size + size;
-    gclog_or_tty->print_cr("Shrinking %s from " SIZE_FORMAT "K to " SIZE_FORMAT "K",
+  log_trace(gc, heap)("Shrinking %s from " SIZE_FORMAT "K to " SIZE_FORMAT "K",
                   name(), old_mem_size/K, new_mem_size/K);
-  }
 }
 
 // No young generation references, clear this generation's cards.
 void CardGeneration::clear_remembered_set() {
   _rs->clear(reserved());

@@ -209,47 +203,33 @@
   size_t minimum_desired_capacity = (size_t)MIN2(min_tmp, double(max_uintx));
   // Don't shrink less than the initial generation size
   minimum_desired_capacity = MAX2(minimum_desired_capacity, initial_size());
   assert(used_after_gc <= minimum_desired_capacity, "sanity check");
 
-  if (PrintGC && Verbose) {
     const size_t free_after_gc = free();
     const double free_percentage = ((double)free_after_gc) / capacity_after_gc;
-    gclog_or_tty->print_cr("TenuredGeneration::compute_new_size: ");
-    gclog_or_tty->print_cr("  "
-                  "  minimum_free_percentage: %6.2f"
-                  "  maximum_used_percentage: %6.2f",
+    log_trace(gc, heap)("TenuredGeneration::compute_new_size:");
+    log_trace(gc, heap)("    minimum_free_percentage: %6.2f  maximum_used_percentage: %6.2f",
                   minimum_free_percentage,
                   maximum_used_percentage);
-    gclog_or_tty->print_cr("  "
-                  "   free_after_gc   : %6.1fK"
-                  "   used_after_gc   : %6.1fK"
-                  "   capacity_after_gc   : %6.1fK",
+    log_trace(gc, heap)("     free_after_gc   : %6.1fK   used_after_gc   : %6.1fK   capacity_after_gc   : %6.1fK",
                   free_after_gc / (double) K,
                   used_after_gc / (double) K,
                   capacity_after_gc / (double) K);
-    gclog_or_tty->print_cr("  "
-                  "   free_percentage: %6.2f",
-                  free_percentage);
-  }
+    log_trace(gc, heap)("     free_percentage: %6.2f", free_percentage);
 
   if (capacity_after_gc < minimum_desired_capacity) {
     // If we have less free space than we want then expand
     size_t expand_bytes = minimum_desired_capacity - capacity_after_gc;
     // Don't expand unless it's significant
     if (expand_bytes >= _min_heap_delta_bytes) {
       expand(expand_bytes, 0); // safe if expansion fails
     }
-    if (PrintGC && Verbose) {
-      gclog_or_tty->print_cr("    expanding:"
-                    "  minimum_desired_capacity: %6.1fK"
-                    "  expand_bytes: %6.1fK"
-                    "  _min_heap_delta_bytes: %6.1fK",
+    log_trace(gc, heap)("    expanding:  minimum_desired_capacity: %6.1fK  expand_bytes: %6.1fK  _min_heap_delta_bytes: %6.1fK",
                     minimum_desired_capacity / (double) K,
                     expand_bytes / (double) K,
                     _min_heap_delta_bytes / (double) K);
-    }
     return;
   }
 
   // No expansion, now see if we want to shrink
   size_t shrink_bytes = 0;

@@ -260,24 +240,16 @@
     const double maximum_free_percentage = MaxHeapFreeRatio / 100.0;
     const double minimum_used_percentage = 1.0 - maximum_free_percentage;
     const double max_tmp = used_after_gc / minimum_used_percentage;
     size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx));
     maximum_desired_capacity = MAX2(maximum_desired_capacity, initial_size());
-    if (PrintGC && Verbose) {
-      gclog_or_tty->print_cr("  "
-                             "  maximum_free_percentage: %6.2f"
-                             "  minimum_used_percentage: %6.2f",
-                             maximum_free_percentage,
-                             minimum_used_percentage);
-      gclog_or_tty->print_cr("  "
-                             "  _capacity_at_prologue: %6.1fK"
-                             "  minimum_desired_capacity: %6.1fK"
-                             "  maximum_desired_capacity: %6.1fK",
+    log_trace(gc, heap)("    maximum_free_percentage: %6.2f  minimum_used_percentage: %6.2f",
+                             maximum_free_percentage, minimum_used_percentage);
+    log_trace(gc, heap)("    _capacity_at_prologue: %6.1fK  minimum_desired_capacity: %6.1fK  maximum_desired_capacity: %6.1fK",
                              _capacity_at_prologue / (double) K,
                              minimum_desired_capacity / (double) K,
                              maximum_desired_capacity / (double) K);
-    }
     assert(minimum_desired_capacity <= maximum_desired_capacity,
            "sanity check");
 
     if (capacity_after_gc > maximum_desired_capacity) {
       // Capacity too large, compute shrinking size

@@ -293,52 +265,35 @@
       if (current_shrink_factor == 0) {
         _shrink_factor = 10;
       } else {
         _shrink_factor = MIN2(current_shrink_factor * 4, (size_t) 100);
       }
-      if (PrintGC && Verbose) {
-        gclog_or_tty->print_cr("  "
-                               "  shrinking:"
-                               "  initSize: %.1fK"
-                               "  maximum_desired_capacity: %.1fK",
-                               initial_size() / (double) K,
-                               maximum_desired_capacity / (double) K);
-        gclog_or_tty->print_cr("  "
-                               "  shrink_bytes: %.1fK"
-                               "  current_shrink_factor: " SIZE_FORMAT
-                               "  new shrink factor: " SIZE_FORMAT
-                               "  _min_heap_delta_bytes: %.1fK",
+      log_trace(gc, heap)("    shrinking:  initSize: %.1fK  maximum_desired_capacity: %.1fK",
+                               initial_size() / (double) K, maximum_desired_capacity / (double) K);
+      log_trace(gc, heap)("    shrink_bytes: %.1fK  current_shrink_factor: " SIZE_FORMAT "  new shrink factor: " SIZE_FORMAT "  _min_heap_delta_bytes: %.1fK",
                                shrink_bytes / (double) K,
                                current_shrink_factor,
                                _shrink_factor,
                                _min_heap_delta_bytes / (double) K);
       }
     }
-  }
 
   if (capacity_after_gc > _capacity_at_prologue) {
     // We might have expanded for promotions, in which case we might want to
     // take back that expansion if there's room after GC.  That keeps us from
     // stretching the heap with promotions when there's plenty of room.
     size_t expansion_for_promotion = capacity_after_gc - _capacity_at_prologue;
     expansion_for_promotion = MIN2(expansion_for_promotion, max_shrink_bytes);
     // We have two shrinking computations, take the largest
     shrink_bytes = MAX2(shrink_bytes, expansion_for_promotion);
     assert(shrink_bytes <= max_shrink_bytes, "invalid shrink size");
-    if (PrintGC && Verbose) {
-      gclog_or_tty->print_cr("  "
-                             "  aggressive shrinking:"
-                             "  _capacity_at_prologue: %.1fK"
-                             "  capacity_after_gc: %.1fK"
-                             "  expansion_for_promotion: %.1fK"
-                             "  shrink_bytes: %.1fK",
+    log_trace(gc, heap)("    aggressive shrinking:  _capacity_at_prologue: %.1fK  capacity_after_gc: %.1fK  expansion_for_promotion: %.1fK  shrink_bytes: %.1fK",
                              capacity_after_gc / (double) K,
                              _capacity_at_prologue / (double) K,
                              expansion_for_promotion / (double) K,
                              shrink_bytes / (double) K);
     }
-  }
   // Don't shrink unless it's significant
   if (shrink_bytes >= _min_heap_delta_bytes) {
     shrink(shrink_bytes);
   }
 }
< prev index next >