我的程序有問題(運行在Glassfish上的JSF)。它正在處理大量數據(並使用休眠將其插入到數據庫中)。問題是,大約2小時的工作後,它會減速。我沒有得到任何異常(特別是沒有OutOfMemory)。它可能是內存泄漏嗎?我用Eclipse Memory Analyzer檢查了堆轉儲,並且存在一些HashMap問題。我修復了它可能的地方,現在該工具不顯示這個問題。但是我的應用程序仍然無法正常工作。內存泄漏沒有OutOfMemory異常?
1
A
回答
3
這聽起來像你的問題不是一個傳統的內存泄漏的。
如果我猜測,我會說你的數據結構設計不好,緩存效率低下,或者是併發瓶頸。
您應該關注性能分析以查看時間正在發生的位置並查找鎖爭用的跡象。
0
有一個機會,你有某種內存泄漏和產生大量的臨時對象,所以經過一段相當長的時間垃圾收集器會殺死你的性能。如果是這樣的話,你可以玩-Xmx
選項:堆的大小越小,你的應用程序應該越早放慢速度,更大的堆應該表現出反對效果。
的影響也可以通過內部的不斷增長造成的數據結構。數據結構上的操作總是有時間複雜性(「大O型符號」),如果複雜性是多態性的或更糟的,這樣的操作也會導致性能下降。查看應用程序中隨時間增長的那些集合,然後仔細檢查並選擇最佳集合類型。
相關問題
- 1. 內存泄漏的異常
- 2. 內存泄漏 - WCF異常
- 3. Android內存泄漏異常
- 4. 出在System.Drawing.Graphics.FromHdcInternal內存異常,但沒有內存泄漏
- 5. 使用C++異常的內存泄漏
- 6. 內存泄漏沒有檢測到CRT內存泄漏檢測
- 7. 內存泄漏[String]常量
- 8. 這裏有沒有內存泄漏?
- 9. 是否泄漏消毒劑保證沒有內存泄漏?
- 10. 泄漏工具沒有發現泄漏,但內存不釋放
- 11. 構造函數拋出異常完成?有沒有內存泄漏?
- 12. NSString創建沒有alloc,內存泄漏
- 13. 返回NSString沒有內存泄漏?
- 14. 更新Android UI沒有泄漏內存
- 15. WeakMap模式Singleton沒有內存泄漏
- 16. valgrind沒有發現內存泄漏?
- 17. 沒有valgrind的內存泄漏狩獵
- 18. 沒有內存泄漏! - 請告知
- 19. 當valgrind說沒有內存泄漏時內存泄漏的機會
- 20. 內存泄漏
- 21. 內存泄漏:
- 22. 內存泄漏
- 23. 內存泄漏
- 24. 內存泄漏
- 25. 內存泄漏
- 26. 內存泄漏
- 27. 內存泄漏
- 28. 內存泄漏
- 29. 內存泄漏
- 30. 內存泄漏:
你可以嘗試使用visualvm連接到虛擬機,並看看虛擬機的狀態,它可能會給一些洞察力... –
相關/ dupe:http://stackoverflow.com/questions/40119/how -to-發現-A-Java的內存泄漏 – amit