Print this page
G1: Use SoftMaxHeapSize to guide GC heuristics

@@ -779,11 +779,15 @@
   void pre_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info,
                                     G1RedirtyCardsQueueSet* rdcqs,
                                     G1ParScanThreadStateSet* pss);
 
-  void expand_heap_after_young_collection();
+  void resize_heap_after_young_collection();
+  bool expand_heap_after_young_collection();
+  void shrink_heap_after_young_collection();
+  void expand_heap_after_concurrent_mark();
+
   // Update object copying statistics.
   void record_obj_copy_mem_stats();
 
   // The hot card cache for remembered set insertion optimization.
   G1HotCardCache* _hot_card_cache;

@@ -1076,11 +1080,11 @@
   inline void old_set_add(HeapRegion* hr);
   inline void old_set_remove(HeapRegion* hr);
 
   inline void archive_set_add(HeapRegion* hr);
 
-  size_t non_young_capacity_bytes() {
+  size_t non_young_capacity_bytes() const {
     return (old_regions_count() + _archive_set.length() + humongous_regions_count()) * HeapRegion::GrainBytes;
   }
 
   // Determine whether the given region is one that we are using as an
   // old GC alloc region.

@@ -1278,10 +1282,13 @@
   virtual size_t max_capacity() const;
 
   // Return the size of reserved memory. Returns different value than max_capacity() when AllocateOldGenAt is used.
   virtual size_t max_reserved_capacity() const;
 
+  // Print the soft maximum heap capacity.
+  size_t soft_max_capacity() const;
+
   virtual jlong millis_since_last_gc();
 
 
   // Convenience function to be used in situations where the heap type can be
   // asserted to be this type.