当我通过 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/