< prev index next >

src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp

Print this page
rev 10500 : [backport] Rework ClassUnloading* flags handling
rev 10604 : [backport] Comprehensible GC trigger logging
rev 10620 : [backport] Evac reserve: make sure GC has untouchable space to move the objects into

@@ -31,10 +31,19 @@
   // Do not shortcut evacuation
   SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahImmediateThreshold, 100);
 
   // Aggressive runs with max speed for allocation, to capture races against mutator
   SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahPacing);
+
+  // Aggressive evacuates everything, so it needs as much evac space as it can get
+  SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahEvacReserveOverflow);
+
+  // If class unloading is globally enabled, aggressive does unloading even with
+  // concurrent cycles.
+  if (ClassUnloading) {
+    SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahUnloadClassesFrequency, 1);
+  }
 }
 
 void ShenandoahAggressiveHeuristics::choose_collection_set_from_regiondata(ShenandoahCollectionSet* cset,
                                                                            RegionData* data, size_t size,
                                                                            size_t free) {

@@ -45,10 +54,11 @@
     }
   }
 }
 
 bool ShenandoahAggressiveHeuristics::should_start_normal_gc() const {
+  log_info(gc)("Trigger: Start next cycle immediately");
   return true;
 }
 
 bool ShenandoahAggressiveHeuristics::should_process_references() {
   if (ShenandoahRefProcFrequency == 0) return false;
< prev index next >