Gho*_*ica 42
一般来说:
分析器一直在运行,因此它为您提供完整的调用堆栈; 在任何给定的时间点.
采样器仅在不同的时间点拍摄"快照".
事情是:当你"描述"所有东西时,那会大大减慢你的JVM; 它创造巨大的几秒钟内的数据.想一想:探查器会记下每个发生的方法调用!
通常,当您"不知道"应用程序中发生了什么时,您最初使用的是采样器.然后你只希望样品告诉你一些事情; 比如"嘿,在我们的10000个样本中,我们大部分时间都采用这种方法,为什么会这样?" 但是一旦你更好地理解了你正在寻找的东西,你就会尝试进行一个完整的分析器运行,以捕获导致某种方法的整个调用链.
然后有一些"中间立场" - 你在其中描述"一切"但排除的东西.换句话说:最剖析让你说"你不型材在这个或那个包类的方法".但是当然 - 排除包/层次结构只有在你已经非常好地感觉到你打算调查哪个方向时才有意义.