77 |
77 |
78 GCType = null; |
78 GCType = null; |
79 |
79 |
80 for (GarbageCollectorMXBean gcMxBean : gcMxBeans) { |
80 for (GarbageCollectorMXBean gcMxBean : gcMxBeans) { |
81 switch (gcMxBean.getName()) { |
81 switch (gcMxBean.getName()) { |
82 case "ConcurrentMarkSweep": |
|
83 GCType = "-XX:+UseConcMarkSweepGC"; |
|
84 break; |
|
85 case "MarkSweepCompact": |
82 case "MarkSweepCompact": |
86 GCType = "-XX:+UseSerialGC"; |
83 GCType = "-XX:+UseSerialGC"; |
87 break; |
84 break; |
88 case "PS Scavenge": |
85 case "PS Scavenge": |
89 GCType = "-XX:+UseParallelGC"; |
86 GCType = "-XX:+UseParallelGC"; |
184 |
181 |
185 if (name.startsWith("G1")) { |
182 if (name.startsWith("G1")) { |
186 option.addPrepend("-XX:+UseG1GC"); |
183 option.addPrepend("-XX:+UseG1GC"); |
187 } |
184 } |
188 |
185 |
189 if (name.startsWith("CMS")) { |
|
190 option.addPrepend("-XX:+UseConcMarkSweepGC"); |
|
191 } |
|
192 |
|
193 if (name.startsWith("NUMA")) { |
186 if (name.startsWith("NUMA")) { |
194 option.addPrepend("-XX:+UseNUMA"); |
187 option.addPrepend("-XX:+UseNUMA"); |
195 } |
188 } |
196 |
189 |
197 switch (name) { |
190 switch (name) { |
205 option.addPrepend("-XX:MaxMetaspaceFreeRatio=100"); |
198 option.addPrepend("-XX:MaxMetaspaceFreeRatio=100"); |
206 break; |
199 break; |
207 case "MaxMetaspaceFreeRatio": |
200 case "MaxMetaspaceFreeRatio": |
208 option.addPrepend("-XX:MinMetaspaceFreeRatio=0"); |
201 option.addPrepend("-XX:MinMetaspaceFreeRatio=0"); |
209 break; |
202 break; |
210 case "CMSOldPLABMin": |
|
211 option.addPrepend("-XX:CMSOldPLABMax=" + option.getMax()); |
|
212 break; |
|
213 case "CMSOldPLABMax": |
|
214 option.addPrepend("-XX:CMSOldPLABMin=" + option.getMin()); |
|
215 break; |
|
216 case "CMSPrecleanNumerator": |
|
217 option.addPrepend("-XX:CMSPrecleanDenominator=" + option.getMax()); |
|
218 break; |
|
219 case "CMSPrecleanDenominator": |
|
220 option.addPrepend("-XX:CMSPrecleanNumerator=" + ((new Integer(option.getMin())) - 1)); |
|
221 break; |
|
222 case "G1RefProcDrainInterval": |
203 case "G1RefProcDrainInterval": |
223 option.addPrepend("-XX:+ExplicitGCInvokesConcurrent"); |
204 option.addPrepend("-XX:+ExplicitGCInvokesConcurrent"); |
224 break; |
205 break; |
225 case "InitialTenuringThreshold": |
206 case "InitialTenuringThreshold": |
226 option.addPrepend("-XX:MaxTenuringThreshold=" + option.getMax()); |
207 option.addPrepend("-XX:MaxTenuringThreshold=" + option.getMax()); |
227 break; |
208 break; |
228 case "NUMAInterleaveGranularity": |
209 case "NUMAInterleaveGranularity": |
229 option.addPrepend("-XX:+UseNUMAInterleaving"); |
210 option.addPrepend("-XX:+UseNUMAInterleaving"); |
230 break; |
|
231 case "CPUForCMSThread": |
|
232 option.addPrepend("-XX:+BindCMSThreadToCPU"); |
|
233 break; |
211 break; |
234 case "VerifyGCStartAt": |
212 case "VerifyGCStartAt": |
235 option.addPrepend("-XX:+VerifyBeforeGC"); |
213 option.addPrepend("-XX:+VerifyBeforeGC"); |
236 option.addPrepend("-XX:+VerifyAfterGC"); |
214 option.addPrepend("-XX:+VerifyAfterGC"); |
237 break; |
215 break; |