Commit d869fd4f authored by hpayer@chromium.org's avatar hpayer@chromium.org

Fix incremental marking speed accelleration and start incremental marking when...

Fix incremental marking speed accelleration and start incremental marking when old space is almost full when pretenuring objects.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 1a9997ee
......@@ -860,6 +860,15 @@ void IncrementalMarking::MarkingComplete(CompletionAction action) {
}
void IncrementalMarking::OldSpaceStep(intptr_t allocated) {
if (IsStopped() && WorthActivating() && heap_->NextGCIsLikelyToBeFull()) {
Start();
} else {
Step(allocated * kFastMarking / kInitialMarkingSpeed, GC_VIA_STACK_GUARD);
}
}
void IncrementalMarking::Step(intptr_t allocated_bytes,
CompletionAction action) {
if (heap_->gc_state() != Heap::NOT_IN_GC ||
......@@ -965,7 +974,7 @@ void IncrementalMarking::Step(intptr_t allocated_bytes,
PrintPID("Postponing speeding up marking until marking starts\n");
}
} else {
marking_speed_ += kMarkingSpeedAccellerationInterval;
marking_speed_ += kMarkingSpeedAccelleration;
marking_speed_ = static_cast<int>(
Min(kMaxMarkingSpeed,
static_cast<intptr_t>(marking_speed_ * 1.3)));
......
......@@ -110,10 +110,7 @@ class IncrementalMarking {
static const intptr_t kMarkingSpeedAccelleration = 2;
static const intptr_t kMaxMarkingSpeed = 1000;
void OldSpaceStep(intptr_t allocated) {
Step(allocated * kFastMarking / kInitialMarkingSpeed,
GC_VIA_STACK_GUARD);
}
void OldSpaceStep(intptr_t allocated);
void Step(intptr_t allocated, CompletionAction action);
......
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