Index: src/incremental-marking.cc |
diff --git a/src/incremental-marking.cc b/src/incremental-marking.cc |
index 658a34c9cd37e5150a51f5641c5168fe16ed5bf4..c34c65ffd85602bc047ba569bc52bdc8fa3d6afe 100644 |
--- a/src/incremental-marking.cc |
+++ b/src/incremental-marking.cc |
@@ -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))); |