Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过JMX计算PS Old Gen上的垃圾收集计数?_Java_Memory Management_Garbage Collection - Fatal编程技术网

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

Java 如何通过JMX计算PS Old Gen上的垃圾收集计数?,java,memory-management,garbage-collection,Java,Memory Management,Garbage Collection,我正试图通过JMX将旧一代的收集计数远程检索到另一个应用程序。我最初的方法是检查MemoryPool和GarbageCollector对象。我看到在MemoryPool->PS Old Gen->MemoryManager名称下我有: PS标记扫描 现在,我可以看看垃圾收集器->PS MarkSweep->CollectionCount。但是,PS Eden空间内存池注册了相同的算法: PS标记扫描 PS清道夫 必须有一种方法来获取特定于一个池的信息。VisualGC有一种了解的方法: 简单地说

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

PS标记扫描 现在,我可以看看垃圾收集器->PS MarkSweep->CollectionCount。但是,PS Eden空间内存池注册了相同的算法:

PS标记扫描 PS清道夫 必须有一种方法来获取特定于一个池的信息。VisualGC有一种了解的方法:


简单地说,垃圾收集总是JVM范围的,而不是特定于内存池的。尽管一些算法,例如young collection-PS Cleave可能只处理一个池,而其他PS Mark Sweet则处理整个堆eden+旧空间+perm空间

所以eden空间并没有特定的PS标记扫描计数,只有JVM中执行的PS标记扫描总数


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

简单地说,垃圾收集总是JVM范围的,而不是特定于内存池的。尽管一些算法,例如young collection-PS Cleave可能只处理一个池,而其他PS Mark Sweet则处理整个堆eden+旧空间+perm空间

所以eden空间并没有特定的PS标记扫描计数,只有JVM中执行的PS标记扫描总数


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

旧版本的统计数据也应该有一个对象。你能展示你正在使用的代码吗?我目前正在使用JVisualVM来探索MBean。最终,这将进入一个监控系统,该系统将通过JMX轮询收集计数。正如我已经提到的,有一个对象叫做MemoryManagerNames,但是这里列出的算法也出现在其他内存池中,因此我无法查看该算法的收集计数。当我使用代码获取所有内存区域时,它们都在那里。我建议你试试。应该有一个对象的统计数据为老一代以及。你能展示你正在使用的代码吗?我目前正在使用JVisualVM来探索MBean。最终,这将进入一个监控系统,该系统将通过JMX轮询收集计数。正如我已经提到的,有一个对象叫做MemoryManagerNames,但是这里列出的算法也出现在其他内存池中,因此我无法查看该算法的收集计数。当我使用代码获取所有内存区域时,它们都在那里。我建议你试试。