49 #include "gc/shared/gcHeapSummary.hpp" |
49 #include "gc/shared/gcHeapSummary.hpp" |
50 #include "gc/shared/plab.hpp" |
50 #include "gc/shared/plab.hpp" |
51 #include "gc/shared/preservedMarks.hpp" |
51 #include "gc/shared/preservedMarks.hpp" |
52 #include "gc/shared/softRefPolicy.hpp" |
52 #include "gc/shared/softRefPolicy.hpp" |
53 #include "memory/memRegion.hpp" |
53 #include "memory/memRegion.hpp" |
54 #include "services/memoryManager.hpp" |
|
55 #include "utilities/stack.hpp" |
54 #include "utilities/stack.hpp" |
56 |
55 |
57 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. |
56 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. |
58 // It uses the "Garbage First" heap organization and algorithm, which |
57 // It uses the "Garbage First" heap organization and algorithm, which |
59 // may combine concurrent marking with parallel, incremental compaction of |
58 // may combine concurrent marking with parallel, incremental compaction of |
65 class GenerationSpec; |
64 class GenerationSpec; |
66 class G1ParScanThreadState; |
65 class G1ParScanThreadState; |
67 class G1ParScanThreadStateSet; |
66 class G1ParScanThreadStateSet; |
68 class G1ParScanThreadState; |
67 class G1ParScanThreadState; |
69 class MemoryPool; |
68 class MemoryPool; |
|
69 class MemoryManager; |
70 class ObjectClosure; |
70 class ObjectClosure; |
71 class SpaceClosure; |
71 class SpaceClosure; |
72 class CompactibleSpaceClosure; |
72 class CompactibleSpaceClosure; |
73 class Space; |
73 class Space; |
74 class G1CollectionSet; |
74 class G1CollectionSet; |
158 G1CollectorPolicy* _collector_policy; |
158 G1CollectorPolicy* _collector_policy; |
159 G1CardTable* _card_table; |
159 G1CardTable* _card_table; |
160 |
160 |
161 SoftRefPolicy _soft_ref_policy; |
161 SoftRefPolicy _soft_ref_policy; |
162 |
162 |
163 GCMemoryManager _memory_manager; |
|
164 GCMemoryManager _full_gc_memory_manager; |
|
165 |
|
166 MemoryPool* _eden_pool; |
|
167 MemoryPool* _survivor_pool; |
|
168 MemoryPool* _old_pool; |
|
169 |
|
170 static size_t _humongous_object_threshold_in_words; |
163 static size_t _humongous_object_threshold_in_words; |
171 |
164 |
172 // These sets keep track of old, archive and humongous regions respectively. |
165 // These sets keep track of old, archive and humongous regions respectively. |
173 HeapRegionSet _old_set; |
166 HeapRegionSet _old_set; |
174 HeapRegionSet _archive_set; |
167 HeapRegionSet _archive_set; |
175 HeapRegionSet _humongous_set; |
168 HeapRegionSet _humongous_set; |
176 |
|
177 virtual void initialize_serviceability(); |
|
178 |
169 |
179 void eagerly_reclaim_humongous_regions(); |
170 void eagerly_reclaim_humongous_regions(); |
180 // Start a new incremental collection set for the next pause. |
171 // Start a new incremental collection set for the next pause. |
181 void start_new_collection_set(); |
172 void start_new_collection_set(); |
182 |
173 |
967 |
958 |
968 virtual CollectorPolicy* collector_policy() const; |
959 virtual CollectorPolicy* collector_policy() const; |
969 |
960 |
970 virtual SoftRefPolicy* soft_ref_policy(); |
961 virtual SoftRefPolicy* soft_ref_policy(); |
971 |
962 |
|
963 virtual void initialize_serviceability(); |
972 virtual GrowableArray<GCMemoryManager*> memory_managers(); |
964 virtual GrowableArray<GCMemoryManager*> memory_managers(); |
973 virtual GrowableArray<MemoryPool*> memory_pools(); |
965 virtual GrowableArray<MemoryPool*> memory_pools(); |
974 |
966 |
975 // The rem set and barrier set. |
967 // The rem set and barrier set. |
976 G1RemSet* g1_rem_set() const { return _g1_rem_set; } |
968 G1RemSet* g1_rem_set() const { return _g1_rem_set; } |