2017-07-07 84 views
1

當我通過JMX將JVisualVM附加到遠程JVM時,我看到「Sampler」選項卡而不是「Profiler」選項卡。我知道採樣和分析有​​區別。我對分析更感興趣(特別是CPU分析)。JVisualVM針對遠程JVM的CPU分析

JVisualVM中首次提供遠程JVM的「Profiler」嗎?如果是這樣,請提及具體的JVM啓動標誌。如果它不可用,有什麼替代方案?請理解我無法登錄到遠程主機。

回答

1

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資源瓶頸。

哪個工具更好取決於您的要求,但工具討論超出了這個問題的範圍,並且是堆棧溢出的主題。

+0

感謝您的精確代碼參考。 [這裏](https://stackoverflow.com/questions/12130107/difference-between-sampling-and-profiling-in-jvisualvm?rq=1)是爲什麼我想要分析而不是採樣。 – RRM

+0

@RMadhav在實踐中,採樣通常比檢測分析器更精確*,因爲它不會修改您運行的代碼並且運行時間非常短。然而,*一些*採樣分析器,包括VisualVM可能遭受[安全點偏見](http://psy-lob-saw.blogspot.ru/2016/02/why-most-sampling-java-profilers-are.html)問題。 – apangin