Java內存分析工具(類似於Yourkit Java Profiler的分析器)和Java內存泄漏檢測工具之間是否有區別? (從我的搜索中,差別很難注意到哪些工具是關心的,但在我看來,這種方式似乎有所不同)。 如果有,是否有任何免費(可供下載)工具用於內存泄漏檢測(而不是內存分析)?先謝謝你!Java內存分析工具和內存泄漏檢測工具有什麼區別?
1
A
回答
1
將內存泄漏檢測工具視爲內存分析工具的優化版本,可幫助您查找問題,而無需親自查看數據。
我已經使用了Yourkit。我會認爲它有兩個功能。雖然它沒有明確指出「你是夥計,你的泄漏是在這行代碼中」,它提供了用於比較內存快照的實用程序,以顯示隨時間變化的內容,並提供了各種實用程序來追蹤對象的引用以找出它們的原因仍在記憶中。
根據您對泄漏檢測工具的定義,可能會爭辯說JConsole中顯示堆內存使用情況的圖是泄漏檢測工具。查看一段足夠長的使用時間的堆耗量圖表......如果平均值持續上升,很可能出現泄漏。
我與Yourkit人沒有關係,但我可以推薦這個工具。這可能會更好,但這並不壞。我將它用於內存和CPU性能分析。我對我們的產品進行常規的加載和內存測試(JConsole/JMX和其他方法),並在出現奇怪時使用Yourkit。大約每2-4個月進行一次cpu分析,尋找容易修復性能瓶頸的方法(我們的負載測試會發現主要問題)。
3
嚴格地說,在C/C++的意義上,Java中沒有內存泄漏:內存分配沒有更多的引用它。
因此,當在java上下文中使用術語「泄漏」時,它有時意味着一個大的內存結構。一些工具稱他們爲「泄漏嫌疑人」,因爲他們無法判斷由於問題的性質或錯誤導致的內存結構是否很大。
有時在動態意義上使用「泄漏」:隨時間增長的內存結構。
所以首先,您需要一個內存工具,它可以爲您提供Java堆轉儲快照中內存分配和引用結構的定量概述。有了這些,您可以通過比較兩個或更多快照來調查動態行爲。如果這些工具提供了一個附加的「泄漏特徵」(JProbe的記憶 - 泄漏 - 醫生,Eclipse-MATs內存泄漏報告),則表明它們首先存在對內存結構非常全面的觀點的問題。
如果你正在尋找一個免費下載,看看
,並在
相關問題
- 1. 內存泄漏檢測和分析工具
- 2. 內存泄漏檢測工具
- 3. 本機內存泄漏分析工具
- 4. Android內存泄漏工具?
- 5. iPhone內存泄漏工具
- 6. 分析結果VS泄漏的工具:iPhone內存泄漏
- 7. linux內核模塊中內存泄漏檢測工具
- 8. 如何在Java內存分析工具中找到內存泄漏行
- 9. 內存泄漏沒有檢測到CRT內存泄漏檢測
- 10. 泄漏性能工具沒有檢測到明顯的內存泄漏
- 11. iphone/ipad內存泄漏儀器工具
- 12. cygwin上的內存泄漏工具
- 13. 查找JavaScript內存泄漏的工具
- 14. 分配屬性時泄漏內存工具無法檢測到泄漏,因此泄漏是否存在?
- 15. 泄漏工具沒有發現泄漏,但內存不釋放
- 16. 檢測內存泄漏Wp7上的工具
- 17. 的valgrind(MEMCHECK)工具因此未檢測內存泄漏
- 18. 任何工具來檢測哪個DLL泄漏內存?
- 19. Cygwin中的內存泄漏檢測工具
- 20. Xcode 4中的內存泄漏檢測工具
- 21. G ++多平臺的內存泄漏檢測工具
- 22. 檢查內存分配,使用泄漏儀器工具
- 23. Monodroid內存分析工具
- 24. 內存分析工具
- 25. C++靜態和動態內存泄漏檢測工具如何工作?
- 26. 內存分析工具和方法
- 27. Delphi Profiler和內存分析工具
- 28. 檢測Android內存泄漏
- 29. 內存泄漏檢測器
- 30. VisualVM內存泄漏檢測