我正在开发一个大型 ERP 项目,该项目具有大约 2100 个表的数据库模型。使用 Hibernate 映射的“仅”500 个表,部署在 Web 服务器上的应用程序需要大约 3GB 的工作内存。
在一个持久性单元中使用这么多表时,有什么方法可以减少 Hibernate 的元模型内存占用?还是我应该放弃 ORM 并使用普通的旧 JDBC(甚至jOOQ)?
现在我正在使用 Hibernate 4.1.8、Spring 3.1.3、JBoss AS 7.1 并使用 MSSQL 数据库。
编辑:
JavaMelody 内存直方图输出- 生成了 2000 个测试表,这些测试表的范围比原始 db 模型小一些(因此“仅”使用了 1.3GB 的内存)
编辑2:
Java MAT 堆分析: