Remove shrinking of new space on compaction and only do it on idle
authorager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 26 Aug 2009 12:51:43 +0000 (12:51 +0000)
committerager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 26 Aug 2009 12:51:43 +0000 (12:51 +0000)
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

index 06b5866..fef0c51 100644 (file)
@@ -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;
     }