2016-09-23 113 views

回答

10

一般:

一个分析器运行所有的时间,所以它给你完整的调用堆栈;在任何时间点。

一个采样器只在不同时间点采取“快照”。事情是:当你“描绘”所有东西时,那么这会显着减慢你的JVM;它会在几秒钟内创建大量的数据量巨大的。想一想:分析器会记下每个以及发生的任何方法调用!

因此,当您不知道应用程序中发生了什么时,您首先使用采样器。然后你只希望样品告诉你一些事情;就像“嘿,在我们的10000个样本中,大多数情况下我们都采用这种方法,为什么?”但只要你有一个更好的理解你是什么“猎取”你会尝试做一个完整的分析器运行,以捕捉整个调用链,导致一些方法。

然后有一些“中间地带” - 你在哪里配置“一切”,但排除东西。换句话说:大多数分析器允许您在此包或该包中的类中说明而不是配置文件方法。但是,当然,当你已经有了一个很好的感觉,你打算调查的方向时,排除软件包/层次结构才有意义。

+0

这听起来很好的解释。 – Jason

相关问题