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

Side by Side Diff: third_party/WebKit/Source/platform/heap/HeapCompact.h

Issue 2908463002: Enable heap compaction on all 'container' arenas. (Closed)
Patch Set: add checks for compaction being activated. Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/heap/HeapCompact.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef HeapCompact_h 5 #ifndef HeapCompact_h
6 #define HeapCompact_h 6 #define HeapCompact_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/heap/BlinkGC.h" 9 #include "platform/heap/BlinkGC.h"
10 #include "platform/wtf/DataLog.h" 10 #include "platform/wtf/DataLog.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 // Notify heap compaction that object at |from| has been relocated to.. |to|. 105 // Notify heap compaction that object at |from| has been relocated to.. |to|.
106 // (Called by the sweep compaction pass.) 106 // (Called by the sweep compaction pass.)
107 void Relocate(Address from, Address to); 107 void Relocate(Address from, Address to);
108 108
109 // For unit testing only: arrange for a compaction GC to be triggered 109 // For unit testing only: arrange for a compaction GC to be triggered
110 // next time a non-conservative GC is run. Sets the compact-next flag 110 // next time a non-conservative GC is run. Sets the compact-next flag
111 // to the new value, returning old. 111 // to the new value, returning old.
112 static bool ScheduleCompactionGCForTesting(bool); 112 static bool ScheduleCompactionGCForTesting(bool);
113 113
114 // Test-only: verify that one or more of the vector arenas are
115 // in the process of being compacted.
116 bool IsCompactingVectorArenas() {
117 for (int i = BlinkGC::kVector1ArenaIndex; i <= BlinkGC::kVector4ArenaIndex;
118 ++i) {
119 if (IsCompactingArena(i))
120 return true;
121 }
122 return false;
123 }
124
114 private: 125 private:
115 class MovableObjectFixups; 126 class MovableObjectFixups;
116 127
117 HeapCompact(); 128 HeapCompact();
118 129
119 // Sample the amount of fragmentation and heap memory currently residing 130 // Sample the amount of fragmentation and heap memory currently residing
120 // on the freelists of the arenas we're able to compact. The computed 131 // on the freelists of the arenas we're able to compact. The computed
121 // numbers will be subsequently used to determine if a heap compaction 132 // numbers will be subsequently used to determine if a heap compaction
122 // is on order (shouldCompact().) 133 // is on order (shouldCompact().)
123 void UpdateHeapResidency(ThreadState*); 134 void UpdateHeapResidency(ThreadState*);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 #if DEBUG_HEAP_FREELIST == 2 195 #if DEBUG_HEAP_FREELIST == 2
185 #define LOG_HEAP_FREELIST_VERBOSE(msg, ...) \ 196 #define LOG_HEAP_FREELIST_VERBOSE(msg, ...) \
186 LOG_HEAP_COMPACTION_INTERNAL(msg, ##__VA_ARGS__) 197 LOG_HEAP_COMPACTION_INTERNAL(msg, ##__VA_ARGS__)
187 #else 198 #else
188 #define LOG_HEAP_FREELIST_VERBOSE(msg, ...) \ 199 #define LOG_HEAP_FREELIST_VERBOSE(msg, ...) \
189 do { \ 200 do { \
190 } while (0) 201 } while (0)
191 #endif 202 #endif
192 203
193 #endif // HeapCompact_h 204 #endif // HeapCompact_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/heap/HeapCompact.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698