我正在升級我的 JBoss、java 和 hibernate 版本JBoss 6 到 Wildfly 11休眠 4 到休眠 5.1和 java 6 到 java 8但是我遇到了 java 堆的這個問題,79% 的內存被 ConcurrentHashMap 對象占用,我做了一個堆轉儲和 eclipse 分析器,我看到主要錯誤來自這個錯誤"類加載器/組件 "org.jboss.modules.ModuleClassLoader @ 0x6c27d1230" 占用 2.877.603.336 (79,10%) 字節。內存在加載的 "java.util.concurrent.ConcurrentHashMap$Node[]" 的一個實例中累積通過“系統類加載器”。如果我看到詳細信息,Dominator Tree 中的累積對象會顯示:org.jboss.modules.ModuleClassLoader -> 2.877.603.336 (Retained Heap)-java.util.Vector @ 0x6c27d4db0 -> 2.877.123.872 (Retained Heap)--java.lang.Object[20480] -> 2.877.123.840 (Retained Heap)---class org.hibernate.internal.SessionFactoryRegistry -> 2.840.910.848 (Retained Heap)-----org.hibernate.internal.SessionFactoryRegistry -> 2.840.910.168 (Retained Heap)------java.util.concurrent.ConcurrentHashMap -> 2.840.909.848 (Retained Heap)-------java.util.concurrent.ConcurrentHashMap$Node[256]-> 2.840.909.784 (Retained Heap)我真的不明白為什么會發生這種情況,因為使用舊技術,不會發生這種情況。
2 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
最后是代碼中的一個錯誤,每次我有一個 NOT_ACTIVE 狀態時我都有一個“重新連接”,這個重新連接會建立新的連接并在應用程序中產生內存泄漏。
刪除此重新連接并排除 NOT_ACTIVE 狀態是解決此問題的方法。
添加回答
舉報
0/150
提交
取消