RFR (XS) 8242042: Shenandoah: tune down ShenandoahGarbageThreshold

Aleksey Shipilev shade at redhat.com
Thu Apr 2 13:45:28 UTC 2020


RFE:
  https://bugs.openjdk.java.net/browse/JDK-8242042

See the discussion in the bug report. No regressions found on benchmarks with mostly-dead heaps.
Improvements found on benchmarks with moderately-fragmented heaps.

Patch:

diff -r 56444036b262 src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Thu Apr 02 15:33:07 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Thu Apr 02 15:44:17 2020 +0200
@@ -92,15 +92,16 @@
   experimental(uintx, ShenandoahUnloadClassesFrequency, 1,                  \
           "Unload the classes every Nth cycle. Normally affects concurrent "\
           "GC cycles, as degenerated and full GCs would try to unload "     \
           "classes regardless. Set to zero to disable class unloading.")    \
                                                                             \
-  experimental(uintx, ShenandoahGarbageThreshold, 60,                       \
+  experimental(uintx, ShenandoahGarbageThreshold, 25,                       \
           "How much garbage a region has to contain before it would be "    \
-          "taken for collection. This a guideline only , as GC heuristics " \
+          "taken for collection. This a guideline only, as GC heuristics "  \
           "may select the region for collection even if it has little "     \
-          "garbage. In percents of heap region size.")                      \
+          "garbage. This also affects how much internal fragmentation the " \
+          "collector accepts. In percents of heap region size.")            \
           range(0,100)                                                      \
                                                                             \
   experimental(uintx, ShenandoahInitFreeThreshold, 70,                      \
           "How much heap should be free before some heuristics trigger the "\
           "initial (learning) cycles. Affects cycle frequency on startup "  \

TEsting: hotspot_gc_shenandoah, eyeballing gc logs, benchmarks

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list