160

VisualVM 有两个单独的选项卡用于采样和分析。VisualVM 中的采样和分析有​​什么区别?

4

1 回答 1

185

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

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

于 2012-08-26T12:31:33.877 回答