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
This commit is contained in:
parent
717394492d
commit
56ad3bf123
12
src/heap.cc
12
src/heap.cc
@ -465,9 +465,9 @@ void Heap::PerformGarbageCollection(AllocationSpace space,
|
|||||||
old_gen_allocation_limit_ =
|
old_gen_allocation_limit_ =
|
||||||
old_gen_size + Max(kMinimumAllocationLimit, old_gen_size / 2);
|
old_gen_size + Max(kMinimumAllocationLimit, old_gen_size / 2);
|
||||||
old_gen_exhausted_ = false;
|
old_gen_exhausted_ = false;
|
||||||
} else {
|
|
||||||
Scavenge();
|
|
||||||
}
|
}
|
||||||
|
Scavenge();
|
||||||
|
|
||||||
Counters::objs_since_last_young.Set(0);
|
Counters::objs_since_last_young.Set(0);
|
||||||
|
|
||||||
PostGarbageCollectionProcessing();
|
PostGarbageCollectionProcessing();
|
||||||
@ -521,12 +521,6 @@ void Heap::MarkCompact(GCTracer* tracer) {
|
|||||||
|
|
||||||
Counters::objs_since_last_full.Set(0);
|
Counters::objs_since_last_full.Set(0);
|
||||||
context_disposed_pending_ = false;
|
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);
|
CollectAllGarbage(force_compaction);
|
||||||
last_gc_count = gc_count_;
|
last_gc_count = gc_count_;
|
||||||
if (force_compaction) {
|
if (force_compaction) {
|
||||||
|
// Shrink new space.
|
||||||
|
new_space_.Shrink();
|
||||||
number_idle_notifications = 0;
|
number_idle_notifications = 0;
|
||||||
finished = true;
|
finished = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user