< prev index next >

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

Print this page
rev 48000 : [mq]: open.patch
rev 48001 : [mq]: 8191564-diff.patch

@@ -1825,10 +1825,20 @@
 
   // Do create of the monitoring and management support so that
   // values in the heap have been properly initialized.
   _g1mm = new G1MonitoringSupport(this);
 
+  G1StringDedup::initialize();
+
+  _preserved_marks_set.init(ParallelGCThreads);
+
+  _collection_set.initialize(max_regions());
+
+  return JNI_OK;
+}
+
+void G1CollectedHeap::initialize_serviceability() {
   _eden_pool = new G1EdenPool(this);
   _survivor_pool = new G1SurvivorPool(this);
   _old_pool = new G1OldGenPool(this);
 
   _full_gc_memory_manager.add_pool(_eden_pool);

@@ -1836,17 +1846,10 @@
   _full_gc_memory_manager.add_pool(_old_pool);
 
   _memory_manager.add_pool(_eden_pool);
   _memory_manager.add_pool(_survivor_pool);
 
-  G1StringDedup::initialize();
-
-  _preserved_marks_set.init(ParallelGCThreads);
-
-  _collection_set.initialize(max_regions());
-
-  return JNI_OK;
 }
 
 void G1CollectedHeap::stop() {
   // Stop all concurrent threads. We do this to make sure these threads
   // do not continue to execute and access resources (e.g. logging)

@@ -1870,10 +1873,11 @@
 size_t G1CollectedHeap::conservative_max_heap_alignment() {
   return HeapRegion::max_region_size();
 }
 
 void G1CollectedHeap::post_initialize() {
+  CollectedHeap::post_initialize();
   ref_processing_init();
 }
 
 void G1CollectedHeap::ref_processing_init() {
   // Reference processing in G1 currently works as follows:
< prev index next >