From 56ad3bf123db90ca14240ae93194f18d388fb489 Mon Sep 17 00:00:00 2001 From: "ager@chromium.org" Date: Wed, 26 Aug 2009 12:51:43 +0000 Subject: [PATCH] Remove shrinking of new space on compaction and only do it on idle notifications. Review URL: http://codereview.chromium.org/173471 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/heap.cc | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/heap.cc b/src/heap.cc index 06b5866447..fef0c510cc 100644 --- a/src/heap.cc +++ b/src/heap.cc @@ -465,9 +465,9 @@ void Heap::PerformGarbageCollection(AllocationSpace space, old_gen_allocation_limit_ = old_gen_size + Max(kMinimumAllocationLimit, old_gen_size / 2); old_gen_exhausted_ = false; - } else { - Scavenge(); } + Scavenge(); + Counters::objs_since_last_young.Set(0); PostGarbageCollectionProcessing(); @@ -521,12 +521,6 @@ void Heap::MarkCompact(GCTracer* tracer) { Counters::objs_since_last_full.Set(0); context_disposed_pending_ = false; - - Scavenge(); - - // Shrink new space as much as possible after compacting full - // garbage collections. - if (is_compacting) new_space_.Shrink(); } @@ -2807,6 +2801,8 @@ bool Heap::IdleNotification() { CollectAllGarbage(force_compaction); last_gc_count = gc_count_; if (force_compaction) { + // Shrink new space. + new_space_.Shrink(); number_idle_notifications = 0; finished = true; }