Jboss 以编程方式获取类似jmap(即堆使用情况)的信息?

Jboss 以编程方式获取类似jmap(即堆使用情况)的信息?,jboss,jvm,monitoring,heap,jmap,Jboss,Jvm,Monitoring,Heap,Jmap,我希望以编程方式获得以下信息(特别是当前使用情况),以便在应用程序的“健康状态”页面中显示它(是的,我知道它经常更改)。代码在JBoss5.1中运行 $ jmap -heap 25837 [...] Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 1572864000 (1500.0MB) NewSize = 1048576 (1.0M

我希望以编程方式获得以下信息(特别是当前使用情况),以便在应用程序的“健康状态”页面中显示它(是的,我知道它经常更改)。代码在JBoss5.1中运行

$ jmap -heap 25837

[...]
Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 1572864000 (1500.0MB)
   NewSize          = 1048576 (1.0MB)
   MaxNewSize       = 4294901760 (4095.9375MB)
   OldSize          = 4194304 (4.0MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 16777216 (16.0MB)
   MaxPermSize      = 268435456 (256.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 332005376 (316.625MB)
   used     = 314099536 (299.5486602783203MB)
   free     = 17905840 (17.076339721679688MB)
   94.60676203026303% used
From Space:
   capacity = 42008576 (40.0625MB)
   used     = 5472256 (5.21875MB)
   free     = 36536320 (34.84375MB)
   13.026521060842434% used
To Space:
   capacity = 43122688 (41.125MB)
   used     = 0 (0.0MB)
   free     = 43122688 (41.125MB)
   0.0% used
PS Old Generation
   capacity = 456589312 (435.4375MB)
   used     = 316167864 (301.5211715698242MB)
   free     = 140421448 (133.91632843017578MB)
   69.24556832377189% used
PS Perm Generation
   capacity = 153092096 (146.0MB)
   used     = 93768952 (89.42504119873047MB)
   free     = 59323144 (56.57495880126953MB)
   61.25002821830854% used
我检查了JMX控制台,希望有一个MBean具有此信息,但是javax.management.j2ee.statistics.Stats的信息非常少:

org.jboss.management.j2ee.statistics.JVMStatsImpl [ {UpTime=[ 1097449:UpTime(description: Time the VM has been running, units: MILLISECOND, startTime: 1296748847668, lastSampleTime: 1296749945117) ], HeapSize=BoundedRangeStatistics[ [low: 0, high: 828243968, current: 828243968]HeapSize(description: Size of the VM's heap, units: Bytes, startTime: 1296748847672, lastSampleTime: 1296749945117), BoundryStatistics[ 0, 0, HeapSize(description: Size of the VM's heap, units: Bytes, startTime: 1296748847670, lastSampleTime: 0) ] ]} ]  

同时发现了

List<MemoryPoolMXBean> pools = ManagementFactory.getMemoryPoolMXBeans();
for (MemoryPoolMXBean pool : pools) {
    System.out.println (pool.getName() + ": " + pool.getUsage());
}
Pool: Code Cache: usage = init = 2359296(2304K) used = 11777408(11501K) committed = 11862016(11584K) max = 50331648(49152K)
Pool: PS Eden Space: usage = init = 33554432(32768K) used = 83991760(82023K) committed = 138280960(135040K) max = 138280960(135040K)
Pool: PS Survivor Space: usage = init = 5570560(5440K) used = 0(0K) committed = 35717120(34880K) max = 35717120(34880K)
Pool: PS Old Gen: usage = init = 89522176(87424K) used = 419430168(409599K) committed = 419430400(409600K) max = 419430400(409600K)
Pool: PS Perm Gen: usage = init = 16777216(16384K) used = 118636528(115855K) committed = 122028032(119168K) max = 197132288(192512K)