Skip to content

Instantly share code, notes, and snippets.

@buzztaiki
Created December 16, 2011 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save buzztaiki/1486181 to your computer and use it in GitHub Desktop.
Save buzztaiki/1486181 to your computer and use it in GitHub Desktop.
Print GCMbeans
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.Arrays;
import java.util.List;
// for x in '' -XX:+UseConcMarkSweepGC -XX:+UseParallelGC -XX:+UseParNewGC; do echo opt:$x; java $x GCMBean; done
public class GCMBean {
public static void main(String[] args) throws Exception {
List<GarbageCollectorMXBean> gcbeans = ManagementFactory.getGarbageCollectorMXBeans();
// printGCBeans(gcbeans);
printGCBeans(Arrays.asList(markSweepGCBean(gcbeans)));
}
private static void printGCBeans(Iterable<GarbageCollectorMXBean> gcbeans) {
for (GarbageCollectorMXBean gcbean : gcbeans) {
System.out.println(gcbean.getName());
System.out.println(Arrays.toString(gcbean.getMemoryPoolNames()));
System.out.println();
}
}
private static GarbageCollectorMXBean markSweepGCBean(Iterable<GarbageCollectorMXBean> gcbeans) {
for (GarbageCollectorMXBean gcbean : gcbeans) {
if (gcbean.getName().indexOf("MarkSweep") >= 0) {
return gcbean;
}
}
return null;
}
}
@buzztaiki
Copy link
Author

$ javac GCMBean.java && for x in '' -XX:+UseConcMarkSweepGC -XX:+UseParallelGC -XX:+UseParNewGC; do echo opt:$x; java $x GCMBean; done
opt:
PS MarkSweep
[PS Eden Space, PS Survivor Space, PS Old Gen, PS Perm Gen]

opt:-XX:+UseConcMarkSweepGC
ConcurrentMarkSweep
[Par Eden Space, Par Survivor Space, CMS Old Gen, CMS Perm Gen]

opt:-XX:+UseParallelGC
PS MarkSweep
[PS Eden Space, PS Survivor Space, PS Old Gen, PS Perm Gen]

opt:-XX:+UseParNewGC
MarkSweepCompact
[Par Eden Space, Par Survivor Space, Tenured Gen, Perm Gen]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment