< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page
rev 47884 : 8191564: Refactor GC related servicability code into GC specific subclasses

*** 43,52 **** --- 43,53 ---- #include "gc/g1/g1GCPhaseTimes.hpp" #include "gc/g1/g1HeapSizingPolicy.hpp" #include "gc/g1/g1HeapTransition.hpp" #include "gc/g1/g1HeapVerifier.hpp" #include "gc/g1/g1HotCardCache.hpp" + #include "gc/g1/g1MemoryPool.hpp" #include "gc/g1/g1OopClosures.inline.hpp" #include "gc/g1/g1ParScanThreadState.inline.hpp" #include "gc/g1/g1Policy.hpp" #include "gc/g1/g1RegionToSpaceMapper.hpp" #include "gc/g1/g1RemSet.hpp"
*** 80,89 **** --- 81,91 ---- #include "prims/resolvedMethodTable.hpp" #include "runtime/atomic.hpp" #include "runtime/init.hpp" #include "runtime/orderAccess.inline.hpp" #include "runtime/vmThread.hpp" + #include "services/memoryManager.hpp" #include "utilities/align.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/stack.inline.hpp" size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0;
*** 5392,5396 **** --- 5394,5441 ---- void G1CollectedHeap::rebuild_strong_code_roots() { RebuildStrongCodeRootClosure blob_cl(this); CodeCache::blobs_do(&blob_cl); } + + class G1YoungGenMemoryManager : public GCMemoryManager { + private: + public: + G1YoungGenMemoryManager() : GCMemoryManager() {} + + const char* name() { return "G1 Young Generation"; } + }; + + class G1OldGenMemoryManager : public GCMemoryManager { + private: + public: + G1OldGenMemoryManager() : GCMemoryManager() {} + + const char* name() { return "G1 Old Generation"; } + }; + + GrowableArray<GCMemoryManager*> G1CollectedHeap::memory_managers() { + _minor_mgr = new G1YoungGenMemoryManager(); + _major_mgr = new G1OldGenMemoryManager(); + GrowableArray<GCMemoryManager*> mem_mgrs; + mem_mgrs.append(_minor_mgr); + mem_mgrs.append(_major_mgr); + return mem_mgrs; + } + + GrowableArray<MemoryPool*> G1CollectedHeap::memory_pools() { + G1EdenPool* eden = new G1EdenPool(this); + G1SurvivorPool* survivor = new G1SurvivorPool(this); + G1OldGenPool* old_gen = new G1OldGenPool(this); + + _major_mgr->add_pool(eden); + _major_mgr->add_pool(survivor); + _major_mgr->add_pool(old_gen); + _minor_mgr->add_pool(eden); + _minor_mgr->add_pool(survivor); + + GrowableArray<MemoryPool*> mem_pools; + mem_pools.append(eden); + mem_pools.append(survivor); + mem_pools.append(old_gen); + return mem_pools; + }
< prev index next >