| Index: src/incremental-marking.cc
|
| diff --git a/src/incremental-marking.cc b/src/incremental-marking.cc
|
| index 658a34c9cd37e5150a51f5641c5168fe16ed5bf4..7aadd279dc6d4f739f2642515acbdb2e9673eb14 100644
|
| --- a/src/incremental-marking.cc
|
| +++ b/src/incremental-marking.cc
|
| @@ -566,7 +566,11 @@ void IncrementalMarking::Start() {
|
| PrintF("[IncrementalMarking] Start\n");
|
| }
|
| ASSERT(FLAG_incremental_marking);
|
| + ASSERT(FLAG_incremental_marking_steps);
|
| ASSERT(state_ == STOPPED);
|
| + ASSERT(heap_->gc_state() == Heap::NOT_IN_GC);
|
| + ASSERT(!Serializer::enabled());
|
| + ASSERT(heap_->isolate()->IsInitialized());
|
|
|
| ResetStepCounters();
|
|
|
| @@ -860,6 +864,25 @@ void IncrementalMarking::MarkingComplete(CompletionAction action) {
|
| }
|
|
|
|
|
| +void IncrementalMarking::OldSpaceStep(intptr_t allocated) {
|
| + if (IsStopped() && WorthActivating() && heap_->NextGCIsLikelyToBeFull()) {
|
| + // Only start incremental marking in a save state: 1) when we are not in
|
| + // a GC, 2) when we turned-on incremental marking, 3) when we are
|
| + // currently not serializing or deserializing the heap.
|
| + if (heap_->gc_state() != Heap::NOT_IN_GC ||
|
| + !FLAG_incremental_marking ||
|
| + !FLAG_incremental_marking_steps ||
|
| + Serializer::enabled() ||
|
| + !heap_->isolate()->IsInitialized()) {
|
| + return;
|
| + }
|
| + 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 +988,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)));
|
|
|