Commit 35e3489e authored by hpayer's avatar hpayer Committed by Commit bot

Set lower allocation limit in idle notification only if no GC happend recently.

BUG=475674
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28506}
parent d3c1a7fb
......@@ -725,6 +725,7 @@ void Heap::GarbageCollectionEpilogue() {
// Remember the last top pointer so that we can later find out
// whether we allocated in new space since the last GC.
new_space_top_after_last_gc_ = new_space()->top();
last_gc_time_ = MonotonicallyIncreasingTimeInMs();
}
......@@ -4612,6 +4613,8 @@ bool Heap::IdleNotification(double deadline_in_seconds) {
static_cast<size_t>(idle_time_in_ms) >
GCIdleTimeHandler::kMaxFrameRenderingIdleTime;
static const double kLastGCTimeTreshold = 1000;
GCIdleTimeHandler::HeapState heap_state;
heap_state.contexts_disposed = contexts_disposed_;
heap_state.contexts_disposal_rate =
......@@ -4620,7 +4623,8 @@ bool Heap::IdleNotification(double deadline_in_seconds) {
heap_state.incremental_marking_stopped = incremental_marking()->IsStopped();
// TODO(ulan): Start incremental marking only for large heaps.
intptr_t limit = old_generation_allocation_limit_;
if (is_long_idle_notification) {
if (is_long_idle_notification &&
(start_ms - last_gc_time_ > kLastGCTimeTreshold)) {
limit = idle_old_generation_allocation_limit_;
}
......
......@@ -2142,15 +2142,18 @@ class Heap {
// Minimal interval between two subsequent collections.
double min_in_mutator_;
// Cumulative GC time spent in marking
// Cumulative GC time spent in marking.
double marking_time_;
// Cumulative GC time spent in sweeping
// Cumulative GC time spent in sweeping.
double sweeping_time_;
// Last time an idle notification happened
// Last time an idle notification happened.
double last_idle_notification_time_;
// Last time a garbage collection happened.
double last_gc_time_;
MarkCompactCollector mark_compact_collector_;
StoreBuffer store_buffer_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment