Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 83fb6394f96e500027120929fbe70b93a438209b..74154ef5020d42ba6648463a571ee91662577583 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -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); |
+ } |
} |