【发布时间】:2012-11-14 01:40:15
【问题描述】:
我正在处理一个大型 ERP 项目,该项目具有包含大约 2100 个表的数据库模型。使用 Hibernate 映射的“仅”500 个表,部署在 Web 服务器上的应用程序需要大约 3GB 的工作内存。
在一个持久性单元中使用这么多表时,有什么方法可以减少 Hibernate 的元模型内存占用?或者我应该放弃 ORM 并使用普通的旧 JDBC(甚至jOOQ)?
现在我正在使用 Hibernate 4.1.8、Spring 3.1.3、JBoss AS 7.1 并使用 MSSQL 数据库。
编辑:
JavaMelody memory histogram output - 生成了 2000 个测试表,这些测试表的范围比原始数据库模型小一些(因此“仅”消耗了 1.3GB 内存)
编辑 2:
Java MAT 堆分析:
【问题讨论】:
-
你知道休眠消耗了多少3GB吗?
-
考虑到大约 10 个表的内存消耗小于 256MB,我估计它在 2.74 GB 以北 :)
-
您想试试 Batoo JPA。 batoo.jp
标签: java spring hibernate jpa memory