Add heap growing strategy details to --trace-gc-verbose.
authorhpayer <hpayer@chromium.org>
Tue, 5 May 2015 09:25:29 +0000 (02:25 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 5 May 2015 09:25:30 +0000 (09:25 +0000)
BUG=

Review URL: https://codereview.chromium.org/1128483003

Cr-Commit-Position: refs/heads/master@{#28218}

src/heap/heap.cc

index 8122e07..a1e2e16 100644 (file)
@@ -329,7 +329,7 @@ void Heap::PrintShortHeapStatistics() {
                          ", committed: %6" V8_PTR_PREFIX "d KB\n",
                new_space_.Size() / KB, new_space_.Available() / KB,
                new_space_.CommittedMemory() / KB);
-  PrintIsolate(isolate_, "Old space,       used: %6" V8_PTR_PREFIX
+  PrintIsolate(isolate_, "Old space,          used: %6" V8_PTR_PREFIX
                          "d KB"
                          ", available: %6" V8_PTR_PREFIX
                          "d KB"
@@ -5266,6 +5266,7 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size,
   // TODO(hpayer): The idle factor could make the handles heuristic obsolete.
   // Look into that.
   double factor;
+  double idle_factor;
   if (freed_global_handles <= kMinHandles) {
     factor = max_factor;
   } else if (freed_global_handles >= kMaxHandles) {
@@ -5283,10 +5284,21 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size,
     factor = min_factor;
   }
 
+  idle_factor = Min(factor, idle_max_factor);
+
   old_generation_allocation_limit_ =
       CalculateOldGenerationAllocationLimit(factor, old_gen_size);
-  idle_old_generation_allocation_limit_ = CalculateOldGenerationAllocationLimit(
-      Min(factor, idle_max_factor), old_gen_size);
+  idle_old_generation_allocation_limit_ =
+      CalculateOldGenerationAllocationLimit(idle_factor, old_gen_size);
+
+  if (FLAG_trace_gc_verbose) {
+    PrintIsolate(
+        isolate_,
+        "Grow: old size: %" V8_PTR_PREFIX "d KB, new limit: %" V8_PTR_PREFIX
+        "d KB (%.1f), new idle limit: %" V8_PTR_PREFIX "d KB (%.1f)\n",
+        old_gen_size / KB, old_generation_allocation_limit_ / KB, factor,
+        idle_old_generation_allocation_limit_ / KB, idle_factor);
+  }
 }