閱讀了很多關於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