gpt4 book ai didi

java - 是否有可能通过远程 JVM 获取 MemoryMXBean 实例?

转载 作者:行者123 更新时间:2023-11-30 09:58:33 24 4
gpt4 key购买 nike

我找到了这篇很好的文章,它解释了如何为您的 VM 查询当前内存 http://recursor.blogspot.com/2006/10/memory-notifications-in-java.html

我的问题是,是否可以轻松地从远程 VM 获取 MemoryMXBean 类的实例(我该怎么做),还是我必须求助于手动查询 MBean?

最佳答案

this page 所述您可以使用 MBeanServerConnection 远程访问它:

   MBeanServerConnection mbs;

// Connect to a running JVM (or itself) and get MBeanServerConnection
// that has the JVM MXBeans registered in it
...

try {
// Assuming the RuntimeMXBean has been registered in mbs
ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);

// Get standard attribute "VmVendor"
String vendor = (String) mbs.getAttribute(oname, "VmVendor");
} catch (....) {
// Catch the exceptions thrown by ObjectName constructor
// and MBeanServer.getAttribute method
...
}

但是,据我了解,您将无法使用 Java 接口(interface),您需要查询您想要的属性

CompositeDataSupport mem = (CompositeDataSupport)serv.getAttribute(memory, "NonHeapMemoryUsage") ;

mem.get("committed")

这太糟糕了(“字符串类型”界面,正如他们在另一个问题中所说)。

正如 Brian Agnew 所说,JConsole View 对于查找所需信息的存储位置非常有用。

关于java - 是否有可能通过远程 JVM 获取 MemoryMXBean 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/857014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com