【发布时间】:2012-09-27 21:48:20
【问题描述】:
我正在尝试通过 JMX 将旧代上的检索收集计数远程发送到另一个应用程序。我最初的方法是检查 MemoryPool 和 GarbageCollector 对象。我在 MemoryPool -> PS Old Gen -> MemoryManagerNames 下看到了:
- PS MarkSweep
现在,我可以看看 GarbageCollector -> PS MarkSweep -> CollectionCount。但是,PS Eden Space 内存池注册了相同的算法:
- PS MarkSweep
- PS 清除
必须有一种方法可以获取特定于一个池的信息。 VisualGC有一个知道的方法:
【问题讨论】:
-
老一代的统计数据也应该有一个对象。你能显示你正在使用的代码吗?
-
我目前正在使用 JVisualVM 来探索 MBean。最终,这将进入一个监控系统,该系统将通过 JMX 轮询收集计数。正如我已经提到的,有一个名为 MemoryManagerNames 的对象,但其中列出的算法也出现在其他内存池中,因此我无法查看该算法的集合计数。
-
当我使用代码获取所有内存区域时,它们都已存在。我建议你试试看。
标签: java memory-management garbage-collection