GC Tuning Updates

dafiremaster

New Member
Jul 29, 2019
43
0
0
With Java 8, the combination of ParNew + Serial Old has been deprecated in Java 8 and completely removed in Java 9. The java parameters presented used by FTB would appear to imply that it is meant to use ParNew + CMS however by default in OpenJDK and HotSpot the default value of UseConcMarkSweepGC is set to false and is not actually overridden by FTB java parameters which results in the combination of ParNew + Serial Old.

Is it meant to be ParNew + CMS? Has anyone on the FTB Team looked at the new Java 9 default of G1GC with its string deduplication and compared it to whats currently in use? I ask these questions because it looks like these startup commands were made back when FTB was first created and haven't been touched since. PermSize was removed in Java 8 yet is still here three years later after the issue was closed as delivered on the openjdk's bug tracker.

Would it be possible to get some official comment on this and perhaps some sort of effort to get some updates to these defaults?

Code:
export JAVACMD="java"

export MIN_RAM="512M"        # -Xms
export MAX_RAM="4096M"       # -Xmx
export PERMGEN_SIZE="256M"   # -XX:PermSize
export JAVA_PARAMETERS="-XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10"
 

jikuja

legacy FTB Launcher developer
Launcher Developer
Global Moderator
Dec 17, 2013
1,134
111
99
Just commenting here, nothing official...


Java 9 will not work with FML/Forge.

PermSize was removed in Java 8 yet is still here three years later after the issue was closed as delivered on the openjdk's bug tracker.
Mostly backwards compatibility. tbh java version should be detected by script and then set ‑XX:MaxPermSize for java 7 and
-XX:MaxMetaspaceSize & -XX:CompressedClassSpaceSize for java 8.