From 0cf86bd2c8372c49241b2f5df9fa2309b3c699fe Mon Sep 17 00:00:00 2001 From: ulan Date: Tue, 4 Aug 2015 05:04:51 -0700 Subject: [PATCH] Use conservative heap growing factor for background tab. BUG=chromium:515873 LOG=NO Review URL: https://codereview.chromium.org/1257833005 Cr-Commit-Position: refs/heads/master@{#29994} --- src/heap/heap.cc | 6 +++++- src/heap/heap.h | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/heap/heap.cc b/src/heap/heap.cc index 0432ee7..6a4acda 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc @@ -109,6 +109,7 @@ Heap::Heap() #endif // DEBUG old_generation_allocation_limit_(initial_old_generation_size_), old_gen_exhausted_(false), + optimize_for_memory_usage_(false), inline_allocation_disabled_(false), store_buffer_rebuilder_(store_buffer()), hidden_string_(NULL), @@ -4906,6 +4907,9 @@ void Heap::CheckAndNotifyBackgroundIdleNotification(double idle_time_in_ms, event.can_start_incremental_gc = incremental_marking()->IsStopped() && incremental_marking()->CanBeActivated(); memory_reducer_.NotifyBackgroundIdleNotification(event); + optimize_for_memory_usage_ = true; + } else { + optimize_for_memory_usage_ = false; } } @@ -5601,7 +5605,7 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size, } if (freed_global_handles >= kFreedGlobalHandlesThreshold || - memory_reducer_.ShouldGrowHeapSlowly()) { + memory_reducer_.ShouldGrowHeapSlowly() || optimize_for_memory_usage_) { factor = Min(factor, kConservativeHeapGrowingFactor); } diff --git a/src/heap/heap.h b/src/heap/heap.h index 54dfc7a..7508279 100644 --- a/src/heap/heap.h +++ b/src/heap/heap.h @@ -1806,6 +1806,10 @@ class Heap { // last GC. bool old_gen_exhausted_; + // Indicates that memory usage is more important than latency. + // TODO(ulan): Merge it with memory reducer once chromium:490559 is fixed. + bool optimize_for_memory_usage_; + // Indicates that inline bump-pointer allocation has been globally disabled // for all spaces. This is used to disable allocations in generated code. bool inline_allocation_disabled_; -- 2.7.4