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.