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 中的采样器和探查器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

GCP 中的 KMS 和秘密管理器有啥区别?

方法和选择器有啥区别?

编译器和链接器有啥区别?

jQuery 的空格和 > 选择器有啥区别?

预处理器和转译器有啥区别?

模板引擎和预处理器有啥区别?