| 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();
|
|
|
|
|