当我通过 JMX 将 JVisualVM 附加到远程 JVM 时,我看到的是“Sampler”选项卡而不是“Profiler”选项卡。我知道采样和分析之间是有区别的。我对 Profiling(特别是 CPU Profiling)更感兴趣。
JVisualVM 中是否首先为远程 JVM 提供了“Profiler”?如果是这样,请提及特定的 JVM 启动标志。如果它不可用,有什么替代方案?请理解我无法登录远程主机。
当我通过 JMX 将 JVisualVM 附加到远程 JVM 时,我看到的是“Sampler”选项卡而不是“Profiler”选项卡。我知道采样和分析之间是有区别的。我对 Profiling(特别是 CPU Profiling)更感兴趣。
JVisualVM 中是否首先为远程 JVM 提供了“Profiler”?如果是这样,请提及特定的 JVM 启动标志。如果它不可用,有什么替代方案?请理解我无法登录远程主机。
VisualVM 不支持远程分析,您可以在其源代码中找到:
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 上。