我在使用 Spring + Hibernate 的 Web 应用程序中遇到问题。
我随机收到错误
java.lang.OutOfMemoryError:超出 GC 开销限制
当 web 应用程序在 tomcat 中运行时
我尝试获取堆转储并使用 Eclipse MAT 对堆转储进行了分析
这是我的发现
Object org.hibernate.impl.SessionFactoryObjectFactory 持有 86% 的内存,这个对象的 Fashhashmap 实例持有超过 100000 个 Hashmap。在每个 Hashmap 中都有一个 org.hibernate.impl.SessionFactoryImpl 的实例,似乎 org.hibernate.impl.SessionFactoryImpl 被加载了几次并存储在 org.hibernate.impl.SessionFactoryObjectFactory 的 Fashhashmap 中
有人可以帮我找到这个问题的根本原因并提出一些解决方案来解决这个问题。