< 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,40 ****
--- 31,49 ----
// 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,54 ****
--- 54,64 ----
}
}
}
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 >