2012-08-26 42 views

回答

166

Sampling表示需要大量線程轉儲和分析堆棧跟蹤。 這通常更快,不需要運行時更改字節碼(這可能會破壞它),但也不太準確。

Profiling意味着instrumenting你的類和方法,所以他們「報告」,只要他們運行。這更準確,因爲它計算每次調用方法,而不僅僅是轉儲完成時捕獲的那些方法。然而,儀器化意味着您的類的字節碼已更改,並且這可能會破壞您的程序。實際上,出於這個原因,在大型應用程序服務器(如JBoss或WebLogic)上使用分析通常會導致所有內容死亡或掛起。

+2

這是否意味着分析比抽樣更準確,但是需要更多資源? – Parag

+0

是的,我已經更新了答案。 – npe

+6

我發現每次我用它來確定不良執行方法時,採樣都足夠準確。我個人從未使用分析。 – Marquez

相關問題