【问题标题】:JVM Attach API Virtual Machine. What does it mean to "Attach"?JVM 附加 API 虚拟机。 “附加”是什么意思?
【发布时间】:2013-07-12 09:39:08
【问题描述】:

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

【问题讨论】:

    标签: java jvm monitoring


    【解决方案1】:

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

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

    【讨论】:

    • 我的问题与“附加”的含义有关。是否打开了 tcp 套接字,是否发生序列化,被附加的 vm 是否必须“批准”试图附加到它的 vm?为了让一个虚拟机连接到另一个虚拟机,幕后发生了什么?
    • 这取决于 Attach API 实现(这反过来意味着您应该使用相同的 Java 二进制文件来运行两个程序以尽量减少差异)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多