如何通过JMX计算PS Old Gen的垃圾收集计数?

时间:2012-09-27 21:48:20

标签: java memory-management garbage-collection

我试图通过JMX远程将旧代的检索集合计数到另一个应用程序。我最初的方法是检查MemoryPool和GarbageCollector对象。我在MemoryPool下看到了 - > PS Old Gen - > MemoryManagerNames我有:

  1. PS MarkSweep
  2. 现在,我可以看一下GarbageCollector - > PS MarkSweep - > CollectionCount。但是,PS Eden Space内存池具有相同的算法注册:

    1. PS MarkSweep
    2. PS Scavenge
    3. 必须有一种获取特定于一个池的信息的方法。 VisualGC有一种了解方式:

      visualgc

1 个答案:

答案 0 :(得分:0)

简单来说 - 垃圾收集始终是JVM范围的(不是内存池特定的)。虽然一些算法(例如年轻集合 - PS Scavenge)可能只处理一个池,而其他算法(PS Mark Sweet)正在处理整个堆(eden +旧空间+ perm空间)。

因此,对于伊甸园空间没有特定的PS Mark Sweep计数,在JVM中只执行了PS Mark Sweep的总数。

您在VisualConsole中看到的数字与您在GarbageCollector中看到的相同 - > PS MarkSweep - > CollectionCount MBean。