2016-09-23 112 views

回答

10

一般:

一個分析器運行所有的時間,所以它給你完整的調用堆棧;在任何時間點。

一個採樣器只在不同時間點採取「快照」。事情是:當你「描繪」所有東西時,那麼這會顯着減慢你的JVM;它會在幾秒鐘內創建大量的數據量巨大的。想一想:分析器會記下每個以及發生的任何方法調用!

因此,當您不知道應用程序中發生了什麼時,您首先使用採樣器。然後你只希望樣品告訴你一些事情;就像「嘿,在我們的10000個樣本中,大多數情況下我們都採用這種方法,爲什麼?」但只要你有一個更好的理解你是什麼「獵取」你會嘗試做一個完整的分析器運行,以捕捉整個調用鏈,導致一些方法。

然後有一些「中間地帶」 - 你在哪裏配置「一切」,但排除東西。換句話說:大多數分析器允許您在此包或該包中的類中說明而不是配置文件方法。但是,當然,當你已經有了一個很好的感覺,你打算調查的方向時,排除軟件包/層次結構纔有意義。

+0

這聽起來很好的解釋。 – Jason

相關問題