jVisualvm中抽样和分析之间的区别

VisualVM有两个单独的选项卡用于采样和分析。 有人能帮我弄清VisualVM中采样和分析之间的区别吗?

Sampling意味着需要大量的线程转储和分析栈跟踪。 这通常更快,不需要你的字节码的运行时改变(这可能会打破它),但也不太准确。

Profiling意味着对你的类和方法进行testing,以便在运行时“报告”。 这更准确,因为它计算每次调用方法,而不仅仅是在转储完成时捕获的那些方法。 但是,仪表意味着你的类的字节码被改变,这可能会破坏你的程序。 实际上,出于这个原因,在大型应用程序服务器(如JBoss或WebLogic)上使用分析通常会导致所有内容死亡或挂起。