Jakarta ee 如何处理JavaEE中的内存泄漏?
正如我在网上发现的,以下项目可能导致内存泄漏。例如:Jakarta ee 如何处理JavaEE中的内存泄漏?,jakarta-ee,memory-leaks,garbage-collection,profiling,Jakarta Ee,Memory Leaks,Garbage Collection,Profiling,正如我在网上发现的,以下项目可能导致内存泄漏。例如: 结果集和语句对象 数据表 收藏 静态变量和类 单身汉 HttpSession和HttpRequest 我的JSF应用程序中的托管bean大多是@viewscope,因此我认为在离开视图之后,GC有足够的信息来发布数据列表、对象等等。但它没有或不完全: 我只是手动关闭hibernate会话(使用finally),但仅此而已。我对GC的其他期望 你能告诉我 如何找到哪些具体的对象留在记忆中 手动离开视图后如何释放对象?类似于析构函数的东西
- 结果集和语句对象
- 数据表
- 收藏
- 静态变量和类
- 单身汉
- HttpSession和HttpRequest
@viewscope
,因此我认为在离开视图之后,GC有足够的信息来发布数据列表、对象等等。但它没有或不完全:
我只是手动关闭hibernate会话(使用finally),但仅此而已。我对GC的其他期望
你能告诉我
- 如何找到哪些具体的对象留在记忆中
- 手动离开视图后如何释放对象?类似于析构函数的东西
- 处理内存泄漏的最佳实践是什么李>
- 当您有一个已加载的java集合并完成它时,分配
。我们注意到,即使列表超出了范围,它也不会被垃圾收集,直到它被设置为nullcollectionObject=null
- 在循环中创建的对象
- 跨类引用的对象。这些对象倾向于留在系统中,直到释放所有引用
- 字符串连接(
)非常昂贵stringa=b+s
- 重载HTTP会话
- JHat,可能会有所帮助。甚至,JConsole提供了足够的关于内存泄漏的线索——或者至少是什么占用了您所有的RAM JHat,MAT()可能会有帮助。甚至,JConsole提供了足够多的关于内存泄漏的线索——或者至少是什么占用了你所有的内存。谢谢你,Nishant,我会试试MAT:)MAT帮了我很大的忙,如果你愿意,我会接受的:)谢谢你,AlexR,我也在做类似的事情,MAT告诉我,我的问题是未发布的
org.hibernate.impl.SessionFactoryImpl@0x3f026c0-652 664(1,24%)字节
。我必须找到如何使用session Factory非常感谢你,拉克希米!