Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Unified Diff: src/heap/incremental-marking.h

Issue 2304123003: [heap] Refactor incremental marking step. (Closed)
Patch Set: another fix of the test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/heap/heap.cc ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/incremental-marking.h
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
index 0ba0f2ce5331734656fbf1e5f0e2717c263d7d90..38e414b46a3277b8bdb5797edf009972d28ed931 100644
--- a/src/heap/incremental-marking.h
+++ b/src/heap/incremental-marking.h
@@ -26,27 +26,10 @@ class IncrementalMarking {
enum CompletionAction { GC_VIA_STACK_GUARD, NO_GC_VIA_STACK_GUARD };
- enum ForceMarkingAction { FORCE_MARKING, DO_NOT_FORCE_MARKING };
-
enum ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION };
enum GCRequestType { NONE, COMPLETE_MARKING, FINALIZATION };
- struct StepActions {
- StepActions(CompletionAction complete_action_,
- ForceMarkingAction force_marking_,
- ForceCompletionAction force_completion_)
- : completion_action(complete_action_),
- force_marking(force_marking_),
- force_completion(force_completion_) {}
-
- CompletionAction completion_action;
- ForceMarkingAction force_marking;
- ForceCompletionAction force_completion;
- };
-
- static StepActions IdleStepActions();
-
explicit IncrementalMarking(Heap* heap);
static void Initialize();
@@ -113,7 +96,8 @@ class IncrementalMarking {
// returns the remaining time that cannot be used for incremental marking
// anymore because a single step would exceed the deadline.
double AdvanceIncrementalMarking(double deadline_in_ms,
- StepActions step_actions);
+ CompletionAction completion_action,
+ ForceCompletionAction force_completion);
// It's hard to know how much work the incremental marker should do to make
// progress in the face of the mutator creating new work for it. We start
@@ -134,17 +118,18 @@ class IncrementalMarking {
static const intptr_t kMarkingSpeedAccelleration = 2;
static const intptr_t kMaxMarkingSpeed = 1000;
+ static const intptr_t kStepSizeInMs = 1;
+
// This is the upper bound for how many times we allow finalization of
// incremental marking to be postponed.
static const size_t kMaxIdleMarkingDelayCounter = 3;
void FinalizeSweeping();
- void OldSpaceStep(intptr_t allocated);
+ void NotifyAllocatedBytes(intptr_t allocated_bytes);
- intptr_t Step(intptr_t allocated, CompletionAction action,
- ForceMarkingAction marking = DO_NOT_FORCE_MARKING,
- ForceCompletionAction completion = FORCE_COMPLETION);
+ void Step(intptr_t bytes_to_process, CompletionAction action,
+ ForceCompletionAction completion);
inline void RestartIfNotMarking();
@@ -245,8 +230,7 @@ class IncrementalMarking {
incremental_marking_(incremental_marking) {}
void Step(int bytes_allocated, Address, size_t) override {
- incremental_marking_.Step(bytes_allocated,
- IncrementalMarking::GC_VIA_STACK_GUARD);
+ incremental_marking_.NotifyAllocatedBytes(bytes_allocated);
}
private:
« no previous file with comments | « src/heap/heap.cc ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698