JvisualVM 中的采样器和探查器有啥区别?
Posted
技术标签:
【中文标题】JvisualVM 中的采样器和探查器有啥区别?【英文标题】:what's the difference between sampler and profiler in JvisualVM?JvisualVM 中的采样器和探查器有什么区别? 【发布时间】:2017-02-01 00:42:07 【问题描述】:我发现JvisualVM中有两个插件,一个是sampler,另一个是profiler。
我也发现他们有类似的用户界面,但是结果有很大的不同,那么他们的不同意味着什么?
为什么它们有很大的不同?
【问题讨论】:
【参考方案1】:一般:
分析器一直在运行,因此它为您提供了完整的调用堆栈;在任何给定的时间点。
采样器只在不同的时间点拍摄“快照”。
问题是:当您“分析”所有内容时,这会显着减慢您的 JVM;它会在几秒钟内创建大量数据。想一想:分析器会记下发生的每一个方法调用!
通常,当您“不知道”应用程序中发生了什么时,您最初会使用采样器。然后你只希望样本能告诉你一些事情;就像“嘿,在我们的 10 000 个样本中,我们大部分时间都在使用这种方法,这是为什么呢?”但是,一旦您更好地了解自己在“寻找”什么,您就会尝试执行完整的分析器运行,以捕获通向某个方法的整个调用链。
然后是一些“中间立场”——你可以在其中描述“一切”,但排除事物。换句话说:大多数分析器允许您说“在这个或那个包中的类中不分析方法”。但当然 - 排除包/层次结构只有在您已经非常清楚您打算调查的方向时才有意义。
【讨论】:
以上是关于JvisualVM 中的采样器和探查器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章