Java 获取运行JVM的GC设置
有没有一种方法可以为运行中的JVM获取GC设置Java 获取运行JVM的GC设置,java,garbage-collection,Java,Garbage Collection,有没有一种方法可以为运行中的JVM获取GC设置 我正在尝试查看哪个GC算法正在运行SerialGC、ParallelGC、ParallelOldGC、ConcurrentMarkSweepGC等 JVM有一个很好的MBean: for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) { System.out.println(gc.getObjectName()); } 您应该看到MBe
我正在尝试查看哪个GC算法正在运行SerialGC、ParallelGC、ParallelOldGC、ConcurrentMarkSweepGC等 JVM有一个很好的MBean:
for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
System.out.println(gc.getObjectName());
}
您应该看到MBean名称,如“PS清除”或“PS标记清除”。使用以下引用将名称与算法匹配:
复制(年轻)-复制收集器
ParNew(年轻)-并行年轻一代收集器
PS清道夫(Young)-并行对象清道夫
标记扫掠压实机(旧)-标记和扫掠压实机
并发标记扫描(旧)-并发标记和扫描压实机
PS标记扫描(旧)-平行标记和扫描收集器
同样的信息也可以通过任何能够查看MBean的工具收集:JConsole、JVisualVM、Jprofiler等等。JVM有一个很好的MBean:
for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
System.out.println(gc.getObjectName());
}
您应该看到MBean名称,如“PS清除”或“PS标记清除”。使用以下引用将名称与算法匹配:
复制(年轻)-复制收集器
ParNew(年轻)-并行年轻一代收集器
PS清道夫(Young)-并行对象清道夫
标记扫掠压实机(旧)-标记和扫掠压实机
并发标记扫描(旧)-并发标记和扫描压实机
PS标记扫描(旧)-平行标记和扫描收集器
同样的信息也可以通过查看MBean的任何工具收集:JConsole、JVisualVM、Jprofiler等。您可以使用JConsole并在GUI中访问JVM的一些JMX bean。在这里,您可以看到JVM内存的长期或年轻部分的GC细节。它就在您的jdk/bin文件夹(热点)中 以下是一些有用的资源:
您可以使用jconsole并在其GUI中访问JVM的一些JMX bean。在这里,您可以看到JVM内存的长期或年轻部分的GC细节。它就在您的jdk/bin文件夹(热点)中 以下是一些有用的资源:
问题是我无法访问源代码,也无法重新编译。您还可以使用外部工具(如JConsole)查看相同的MBean信息,JVisualVM或JProfilerI查看了java.lang.GarbageCollector包下的MBeans选项卡,但我没有看到任何东西告诉我GC算法是什么?请注意该选项卡下的MBean名称。例如,对于我的平台,它们是“PS清除”和“PS标记扫描”。请参阅名为alrorithm Reference的更新答案问题是我无权访问源代码,无法重新编译。您也可以使用外部工具(如JConsole)查看相同的MBean信息,JVisualVM或JProfilerI查看了java.lang.GarbageCollector包下的MBeans选项卡,但我没有看到任何东西告诉我GC算法是什么?请注意该选项卡下的MBean名称。例如,对于我的平台,它们是“PS清除”和“PS标记扫描”。请参阅更新的答案,并将其命名为alrorithm reference