| Index: src/incremental-marking.h
|
| ===================================================================
|
| --- src/incremental-marking.h (revision 12583)
|
| +++ src/incremental-marking.h (working copy)
|
| @@ -95,21 +95,22 @@
|
| // progress in the face of the mutator creating new work for it. We start
|
| // of at a moderate rate of work and gradually increase the speed of the
|
| // incremental marker until it completes.
|
| - // Do some marking every time this much memory has been allocated.
|
| - static const intptr_t kAllocatedThreshold = 65536;
|
| + // Do some marking every time this much memory has been allocated or this many
|
| + // heavy (color-checking) write barriers have been invoked.
|
| + static const intptr_t kIncrementalMarkingThreshold = 65536;
|
| // Start off by marking this many times more memory than has been allocated.
|
| - static const intptr_t kInitialAllocationMarkingFactor = 1;
|
| + static const intptr_t kInitialMarkingSpeed = 1;
|
| // But if we are promoting a lot of data we need to mark faster to keep up
|
| // with the data that is entering the old space through promotion.
|
| static const intptr_t kFastMarking = 3;
|
| // After this many steps we increase the marking/allocating factor.
|
| - static const intptr_t kAllocationMarkingFactorSpeedupInterval = 1024;
|
| + static const intptr_t kMarkingSpeedAccellerationInterval = 1024;
|
| // This is how much we increase the marking/allocating factor by.
|
| - static const intptr_t kAllocationMarkingFactorSpeedup = 2;
|
| - static const intptr_t kMaxAllocationMarkingFactor = 1000;
|
| + static const intptr_t kMarkingSpeedAccelleration = 2;
|
| + static const intptr_t kMaxMarkingSpeed = 1000;
|
|
|
| void OldSpaceStep(intptr_t allocated) {
|
| - Step(allocated * kFastMarking / kInitialAllocationMarkingFactor,
|
| + Step(allocated * kFastMarking / kInitialMarkingSpeed,
|
| GC_VIA_STACK_GUARD);
|
| }
|
|
|
| @@ -211,13 +212,13 @@
|
|
|
| void NotifyOfHighPromotionRate() {
|
| if (IsMarking()) {
|
| - if (allocation_marking_factor_ < kFastMarking) {
|
| + if (marking_speed_ < kFastMarking) {
|
| if (FLAG_trace_gc) {
|
| PrintPID("Increasing marking speed to %d "
|
| "due to high promotion rate\n",
|
| static_cast<int>(kFastMarking));
|
| }
|
| - allocation_marking_factor_ = kFastMarking;
|
| + marking_speed_ = kFastMarking;
|
| }
|
| }
|
| }
|
| @@ -275,9 +276,10 @@
|
| double steps_took_since_last_gc_;
|
| int64_t bytes_rescanned_;
|
| bool should_hurry_;
|
| - int allocation_marking_factor_;
|
| + int marking_speed_;
|
| intptr_t bytes_scanned_;
|
| intptr_t allocated_;
|
| + intptr_t write_barriers_invoked_since_last_step_;
|
|
|
| int no_marking_scope_depth_;
|
|
|
|
|