java - 用于远程 JVM 的 JVisualVM CPU 分析

标签 java jvm jvisualvm code-profiling

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

JVisualVM 中的“Profiler”首先可以用于远程 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 上的主题无关。

关于java - 用于远程 JVM 的 JVisualVM CPU 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44973048/

相关文章:

java - 在 JVM 中并行加载同一库的不同版本

web-applications - 使用 VisualVM 在 JBoss 7 上分析 Web 应用程序

Java VisualVM (jvisualvm) 工具在启动时抛出警告 "could not install some modules"

java - NetBeans:创建一个 Action 对象并通过 IDE 工具将其附加到表单上的一个或多个组件

java - 无法在我的 java 文件中使用 jar 库

java - SqlServer2016,Hibernate 架构验证 : Missing table, 但表存在于数据库中

multithreading - 数量逻辑 CPU 是否会影响 Java8 Streams 性能?

java - org.hamcrest.Matchers 用于同时匹配对象的不同属性

Java线程启动时间

java - 自动化 Tomcat 线程/堆转储以进行进一步分析