MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / getGarbageCollectorArgs

Method getGarbageCollectorArgs

launcher/java/JavaPerformance.cpp:63–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63QStringList JavaPerformance::getGarbageCollectorArgs(const JavaVersion& version, const GarbageCollectorPreset preset)
64{
65 switch (preset) {
66 case GarbageCollectorPreset::None:
67 return {};
68 case GarbageCollectorPreset::G1GC: {
69 // Mojang defaults
70 QStringList args{ "-XX:+UnlockExperimentalVMOptions", "-XX:+UseG1GC",
71 "-XX:G1NewSizePercent=20", "-XX:G1ReservePercent=20",
72 "-XX:MaxGCPauseMillis=50", "-XX:G1HeapRegionSize=32M",
73 // Aikar's flags
74 "-XX:SurvivorRatio=32", "-XX:MaxTenuringThreshold=1" };
75 return args;
76 }
77 case GarbageCollectorPreset::ZGC: {
78 // Mojang defaults
79 QStringList args{ "-XX:+UseZGC" };
80 // Support for generations was added in Java 21 and became default in Java 23
81 if (version.major() >= 21 && version.major() < 23) {
82 args << "-XX:+ZGenerational";
83 }
84 // https://docs.oracle.com/en/java/javase/21/gctuning/z-garbage-collector.html
85 // Prevent ZGC from returning memory to the OS, as this might have a negative impact on the latency of Java threads.
86 args << "-XX:-ZUncommit";
87 return args;
88 }
89 }
90
91 Q_ASSERT_X(false, "JavaPerformance::getGarbageCollectorArgs", "No arguments specified for current garbage collector preset");
92 return {};
93}
94
95QStringList JavaPerformance::getCompletePerformanceArgs(const JavaVersion& version,
96 const bool useOptimized,

Callers

nothing calls this directly

Calls 1

majorMethod · 0.80

Tested by

no test coverage detected