2012-05-29 33 views
10

FindBugs能夠報告「性能」錯誤,即可能導致性能問題的代碼段。有沒有其他工具可以找到Java中可能導致性能問題的工具?Java性能bug查找器

任何工具是否可以將這些錯誤與性能數據(例如堆轉儲,跟蹤)實際交叉引用以驗證這些是真正的問題還是對它們的重要性進行排序?

+0

我建議您使用「大腦 - 奇妙的頭部填充物」。當然,還有一個CPU分析器。 –

回答

4

這種類型的工具稱爲profiler

與FindBugs和類似的不同,配置文件是動態的,這意味着它們在程序運行時收集性能數據。他們可以查明與CPU和內存使用有關的問題,鎖定爭用,死鎖等。

有關這種商業工具的功能的詳細介紹,請參閱。

對於非商業工具,請參閱VisualVM Features

+0

這聽起來不錯 - 但最好有一個工具將其與FindBugs類似的靜態分析相結合,以挑選出簡單的案例。 – daniel

+0

@daniel:我還沒有遇到過這樣的工具。此外,通過靜態分析來查明性能問題非常困難。 – NPE

+0

FindBugs靜態工作(僅限源代碼)。分析器查看正在運行的程序。顯然,有些事情可以在沒有運行程序的情況下檢測到。 –

3

您也可以使用JProfiler。 JProfiler是一款屢獲殊榮的多功能Java分析器。 JProfiler直觀的GUI可幫助您找到性能瓶頸,確定內存泄漏並解決線程問題。

0

我建議在Netbeans中使用像這樣的分析器。

  • 創建單元測試時考慮到性能假設。
  • 1.)測試創建對象的數量
  • 問問自己:我有期待嗎?
  • 尋找「處理器食用者」 - 方法的
  • 2.)好或者應該這個方法更快,因爲沒有什麼特別的方法(只有一個錯誤的循環或類似的東西)?

  • 只尋找異常值!!! (前3或5)

您將學到很多關於您的應用程序。