4

我不太明白通过attach api “附加”到另一个虚拟机是什么意思。我读过每个 Java 程序都在自己的虚拟机中运行(请参阅此处)。那么,对于一个程序“附加”到另一个 jvm 进程以便它可以访问其他虚拟机数据(例如 MBeanServer)时,内存中究竟发生了什么?一个虚拟机的字节码实际上是向另一个虚拟机调用特殊请求以获得访问内存的权限,还是第一个虚拟机从内存中卸载,然后两组代码共享一个虚拟机?我' 如果有人可以从内存角度/虚拟机协商步骤(如果这就是所谓的)阐明此附件的详细信息,我将不胜感激。谢谢!

4

1 回答 1

1

解释一个 jvm 附加到另一个的场景的完美示例是使用 Java Profiler。Profiler 基本上用于获取另一个 jvm 的洞察力以进行性能分析。正在检查的应用程序附加到分析器 jvm,它内省堆/堆栈以确定有关检查的 jvm 的不同信息。

标准分析器jvisualvm广泛使用JVM TI API,例如执行和监控垃圾收集。Java Management Extensions (JMX) 用作公共通信层。

于 2013-07-12T09:44:24.383 回答