JVisualVM 中采样与剖析的区别

VisualVM 有两个用于采样和分析的选项卡?

21057 次浏览

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

Profiling意味着 仪器你的类和方法,所以他们“报告”无论何时运行。这样做更加准确,因为它计算检测方法的每次调用,而不仅仅是在转储完成时捕获的调用。但是插装意味着类的字节码被更改,这可能会破坏程序。实际上,由于这个原因,在大型应用服务器(如 JBoss 或 WebLogic)上使用概要分析通常会导致所有东西都死掉或挂起。