JVisualVM CPU 远程 JVM 分析

JVisualVM CPU Profiling for remote JVM

当我通过 JMX 将 JVisualVM 附加到远程 JVM 时,我看到 "Sampler" 选项卡而不是 "Profiler" 选项卡。我知道采样和分析之间存在差异。我对 Profiling 更感兴趣(特别是 CPU Profiling)。

"Profiler" 是否在 JVisualVM 中首先用于远程 JVM?如果是这样,请提及具体的 JVM 启动标志。如果它不可用,有哪些替代方案?请理解我无法登录到远程主机。

VisualVM 不支持远程分析,您可以在其 source code:

中找到
    boolean supportsProfiling(Application application) {
        // Application already being profiled (Startup Profiler)
        if (application == getProfiledApplication()) return true;

        // Remote profiling is not supported
        if (application.getHost() != Host.LOCALHOST) return false;

        ...

事实上,如果您想找到 CPU 消耗瓶颈,采样 一个很好的替代分析器的工具。

哪个工具更好取决于你的要求,但是工具的讨论超出了这个问题的范围,并且在 Stack Overflow 上是题外话。