Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 6fb429ae7d6e6280e13ac750bcf1da95eddd33b9..38166439eadebe036c2366cf52b40a599cb5f1aa 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -837,6 +837,23 @@ class Heap { |
// incremental steps. |
void StartIdleIncrementalMarking(); |
+ // Starts incremental marking assuming incremental marking is currently |
+ // stopped. |
+ void StartIncrementalMarking(int gc_flags, |
+ const GCCallbackFlags gc_callback_flags, |
+ const char* reason = nullptr); |
+ |
+ // Performs incremental marking steps of step_size_in_bytes as long as |
+ // deadline_ins_ms is not reached. step_size_in_bytes can be 0 to compute |
+ // an estimate increment. Returns the remaining time that cannot be used |
+ // for incremental marking anymore because a single step would exceed the |
+ // deadline. |
+ double AdvanceIncrementalMarking( |
+ intptr_t step_size_in_bytes, double deadline_in_ms, |
+ IncrementalMarking::StepActions step_actions); |
+ |
+ void FinalizeIncrementalMarkingIfComplete(const char* comment); |
+ |
inline void increment_scan_on_scavenge_pages() { |
scan_on_scavenge_pages_++; |
if (FLAG_gc_verbose) { |
@@ -1627,6 +1644,8 @@ class Heap { |
bool HasHighFragmentation(); |
bool HasHighFragmentation(intptr_t used, intptr_t committed); |
+ bool ShouldOptimizeForMemoryUsage() { return optimize_for_memory_usage_; } |
+ |
protected: |
// Methods made available to tests. |
@@ -2267,6 +2286,8 @@ class Heap { |
bool HasLowYoungGenerationAllocationRate(); |
bool HasLowOldGenerationAllocationRate(); |
+ double YoungGenerationMutatorUtilization(); |
+ double OldGenerationMutatorUtilization(); |
void ReduceNewSpaceSize(); |