当我通过JMX将JVisualVM连接到远程JVM时,我看到“Sampler”选项卡而不是“Profiler”选项卡。我知道采样和分析之间存在差异。我对分析(特别是CPU分析)更感兴趣。
首先在JVisualVM中为远程JVM提供“Profiler”吗?如果是这样,请提及具体的JVM启动标志。如果它不可用,有哪些替代方案?请理解我无法登录远程主机。
答案 0 :(得分:2)
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的瓶颈,那么 是一个很好的替代intrumenting profiler。
哪种工具更好取决于您的要求,但工具讨论超出了本问题的范围,并且在Stack Overflow上偏离主题。