Я работаю над большим проектом ERP, в котором есть модель базы данных с примерно 2100 таблицами. С «всего» 500 таблицами, отображаемыми с помощью Hibernate, приложение, развернутое на веб-сервере, занимает около 3 ГБ рабочей памяти.
Есть ли способ уменьшить объем памяти метамодели Hibernate при использовании такого количества таблиц в одной единице персистентности? Или мне просто отказаться от ORM и использовать старый добрый JDBC (или даже jOOQ)?
Сейчас я использую Hibernate 4.1.8, Spring 3.1.3, JBoss AS 7.1 и работаю с базой данных MSSQL.
Редактировать:
Вывод гистограммы памяти JavaMelody — с 2000 сгенерированными тестовыми таблицами, которые немного меньше по объему, чем исходная модель db (следовательно, «всего» 1,3 ГБ затраченной памяти)
Редактировать 2:
Анализ кучи Java MAT: