1
當我通過JMX將JVisualVM附加到遠程JVM時,我看到「Sampler」選項卡而不是「Profiler」選項卡。我知道採樣和分析有區別。我對分析更感興趣(特別是CPU分析)。JVisualVM針對遠程JVM的CPU分析
JVisualVM中首次提供遠程JVM的「Profiler」嗎?如果是這樣,請提及具體的JVM啓動標誌。如果它不可用,有什麼替代方案?請理解我無法登錄到遠程主機。
當我通過JMX將JVisualVM附加到遠程JVM時,我看到「Sampler」選項卡而不是「Profiler」選項卡。我知道採樣和分析有區別。我對分析更感興趣(特別是CPU分析)。JVisualVM針對遠程JVM的CPU分析
JVisualVM中首次提供遠程JVM的「Profiler」嗎?如果是這樣,請提及具體的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;
...
事實上,抽樣是一個很好的替代的intrumenting探查,如果你想找到消耗CPU資源瓶頸。
哪個工具更好取決於您的要求,但工具討論超出了這個問題的範圍,並且是堆棧溢出的主題。
感謝您的精確代碼參考。 [這裏](https://stackoverflow.com/questions/12130107/difference-between-sampling-and-profiling-in-jvisualvm?rq=1)是爲什麼我想要分析而不是採樣。 – RRM
@RMadhav在實踐中,採樣通常比檢測分析器更精確*,因爲它不會修改您運行的代碼並且運行時間非常短。然而,*一些*採樣分析器,包括VisualVM可能遭受[安全點偏見](http://psy-lob-saw.blogspot.ru/2016/02/why-most-sampling-java-profilers-are.html)問題。 – apangin