【发布时间】:2011-10-08 05:43:52
【问题描述】:
正如我在网上某处发现的那样,以下项目可能会导致内存泄漏。例如:
- ResultSet 和 Statement 对象
- 数据列表
- 收藏
- 静态变量和类
- 单身人士
- HttpSession 和 HttpRequest
我的JSF应用中托管的bean大多是@ViewScoped,所以我认为离开视图后GC有足够的信息来释放datalists、objects等。但它没有或不完全:
我只是手动关闭休眠会话(使用 finally),仅此而已。我对 GC 的其他期望。
你能告诉我吗,
- 如何找到哪些具体对象留在内存中?
- 手动离开视图后如何释放对象?类似于析构函数..?
- 处理内存泄漏的最佳实践是什么?
【问题讨论】:
-
JHat, MAT (eclipse.org/mat) 可能会有所帮助。甚至,JConsole 提供了关于内存泄漏的足够线索——或者至少是什么占用了你的所有 RAM。
-
谢谢你,Nishant,我会试试 MAT :)
-
MAT 对我帮助很大,如果你愿意,请给出答案,我会接受的 :)
标签: jakarta-ee memory-leaks garbage-collection profiling