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

Unified Diff: src/heap/heap.h

Issue 2364923002: [heap] New heuristics for starting of incremental marking. (Closed)
Patch Set: rebase 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 | « no previous file | src/heap/heap.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.h
diff --git a/src/heap/heap.h b/src/heap/heap.h
index edce0d953d13ae2ba1e0274ca096b7c80bd10932..7e1273cfc684a579cd9fbb1b55018bf77fa6e49d 100644
--- a/src/heap/heap.h
+++ b/src/heap/heap.h
@@ -708,22 +708,11 @@ class Heap {
// should not happen during deserialization.
void NotifyDeserializationComplete();
- intptr_t old_generation_allocation_limit() const {
- return old_generation_allocation_limit_;
- }
-
- bool always_allocate() { return always_allocate_scope_count_.Value() != 0; }
-
inline Address* NewSpaceAllocationTopAddress();
inline Address* NewSpaceAllocationLimitAddress();
inline Address* OldSpaceAllocationTopAddress();
inline Address* OldSpaceAllocationLimitAddress();
- bool CanExpandOldGeneration(int size) {
- if (force_oom_) return false;
- return (OldGenerationCapacity() + size) < MaxOldGenerationSize();
- }
-
// Clear the Instanceof cache (used when a prototype changes).
inline void ClearInstanceofCache();
@@ -846,8 +835,6 @@ class Heap {
// Check new space expansion criteria and expand semispaces if it was hit.
void CheckNewSpaceExpansionCriteria();
- inline bool HeapIsFullEnoughToStartIncrementalMarking(intptr_t limit);
-
void VisitExternalResources(v8::ExternalResourceVisitor* visitor);
// An object should be promoted if the object has survived a
@@ -861,8 +848,6 @@ class Heap {
void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature);
- inline bool OldGenerationAllocationLimitReached();
-
// Completely clear the Instanceof cache (to stop it keeping objects alive
// around a GC).
inline void CompletelyClearInstanceofCache();
@@ -1831,6 +1816,22 @@ class Heap {
intptr_t MinimumAllocationLimitGrowingStep();
+ intptr_t old_generation_allocation_limit() const {
+ return old_generation_allocation_limit_;
+ }
+
+ bool always_allocate() { return always_allocate_scope_count_.Value() != 0; }
+
+ bool CanExpandOldGeneration(int size) {
+ if (force_oom_) return false;
+ return (OldGenerationCapacity() + size) < MaxOldGenerationSize();
+ }
+
+ bool ShouldExpandOldGenerationOnAllocationFailure();
+
+ enum class IncrementalMarkingLimit { kNoLimit, kSoftLimit, kHardLimit };
+ IncrementalMarkingLimit IncrementalMarkingLimitReached();
+
// ===========================================================================
// Idle notification. ========================================================
// ===========================================================================
@@ -2303,12 +2304,15 @@ class Heap {
friend class HeapIterator;
friend class IdleScavengeObserver;
friend class IncrementalMarking;
+ friend class IncrementalMarkingJob;
friend class IteratePromotedObjectsVisitor;
+ friend class LargeObjectSpace;
friend class MarkCompactCollector;
friend class MarkCompactMarkingVisitor;
friend class NewSpace;
friend class ObjectStatsCollector;
friend class Page;
+ friend class PagedSpace;
friend class Scavenger;
friend class StoreBuffer;
friend class TestMemoryAllocatorScope;
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698