阅读了很多关于MAT后,我用我的生产堆转储分析内存泄漏问题。这是在泄漏报告错误:内存泄漏:如何解决
The thread org.apache.tomcat.util.threads.TaskThread @ 0x6d8be0a30 http-bio-8443-exec-115 keeps local variables with total size 3,695,816,440 (89.03%) bytes.
The memory is accumulated in one instance of "java.lang.Object[]" loaded by "'<'system class loader'>".
支配树摘要显示以下内容:
org.apache.tomcat.util.threads.TaskThread @ 0x6d8be0a30 http-bio-8443-exec-115 SH:112 RH:3,695,816,440 Prct:89.03% java.util.ArrayList @ 0x6da437cd8 SH:24 RH:3,695,668,184 Prct:89.03% java.lang.Object[1823230] @ 0x77da34ee8 SH:7,292,936 RH:3,695,668,160 Prct:89.03% com.cjs.persistence.dto.SomeDTO @ 0x76f631650 SH:360 RH:2,264 Prct:0.00% com.cjs.persistence.dto.SomeDTO @ 0x750ed8f88 SH:360 RH:2,264 Prct:0.00% ...
到GC根的路径显示线程本身。我无法找到造成这种情况的原因以及为什么保留这些DTO列表以及如何清除它们。任何建议是非常感谢。
感谢您的答复。堆栈跟踪中指出,从数据库中获取其他和someEntity填写SomeDTO,没有什么方法。 – sMajeed