< 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 >