< 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 >