获取运行JVM的GC设置

时间:2013-09-18 19:37:18

标签: java garbage-collection

有没有办法为正在运行的JVM获取GC设置?

我正在尝试查看运行SerialGC,ParallelGC,ParallelOldGC,ConcurrentMarkSweepGC等的GC算法。

2 个答案:

答案 0 :(得分:3)

JVM有一个很好的MBean:

for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
   System.out.println(gc.getObjectName());
}

您应该看到MBeans名称,如“PS Scavenge”或“PS Mark Sweep”。使用以下参考将名称与算法匹配:

复制(年轻) - 复制收藏家

ParNew (年轻) - 平行的年轻一代收藏家

PS Scavenge (Young) - 并行对象清道夫

MarkSweepCompact (旧) - 标记并扫描压缩器

ConcurrentMarkSweep (旧) - 并发标记和扫描压缩器

PS MarkSweep (旧) - 并行标记和扫描收集器

使用查看MBean的任何工具功能也可以收集相同的信息:JConsole,JVisualVM,Jprofiler等。

答案 1 :(得分:2)

您可以使用jconsole并在其GUI中访问JVM的一些JMX bean。在那里,您可以看到适用于JVM内存的Tenured或Young部分的GC的详细信息。它只在你的jdk / bin文件夹(HotSpot)

以下是一些有用的资源:

Using JConsole