我不太明白通过attach api“连接”到另一个虚拟机意味着什么。我读到过每个java程序都在自己的虚拟机上运行(参见here)。那么,一个程序“附加”到另一个jvm进程,以便它可以访问其他虚拟机数据(如MBeanServer ),在内存中究竟发生了什么?是一个虚拟机的字节码实际上调用了对另一个虚拟机的特殊请求以获得访问内存的权限,还是第一个虚拟机从内存中卸载,然后两组代码共享一个虚拟机?如果有人能从内存观点/虚拟机协商步骤(如果它是这样叫的话)澄清这个附件的细节,我将不胜感激。谢谢!
发布于 2013-07-12 17:44:24
解释一个jvm连接到另一个jvm的最佳示例是使用Java分析器。分析器基本上是用来洞察另一个jvm的性能分析。被检查的应用程序被附加到分析器jvm,该分析器检查堆/堆栈以确定关于被检查的jvm的不同信息。
标准分析器jvisualvm广泛使用JVM TI API,例如执行和监视垃圾收集。Java管理扩展(JMX)被用作公共通信层。
https://stackoverflow.com/questions/17611912
复制相似问题