Управление памятью JVM в Unix / Linux - PullRequest
0 голосов
/ 16 ноября 2010

Привет, я испытываю странные явления.

У меня есть Java-приложение, которое запрашивает БД с помощью Hibernate ORM.

Через HP-UX sgx842 B.11.11 U 9000/800 888281448 unlimited-user license после запуска сервера и выполнения нескольких запросов из нескольких тысяч записей размер кучи устанавливается на 800 МБ.

В Linux sglx481.amk.st.com 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux память взрывается до максимальной памяти JVM(устанавливается опцией -Xmx).Однако система не замедляется и все еще может выполнять запросы данных.Нет OutOfMemoryError исключения.Нет видимого снижения производительности визуально, хотя я не использовал инструмент.

В Windows также нет проблем.

В спящем режиме я не использую аннотации, а открываю и закрываю сеанс и трансакцию вручную.

sessionFactory = new Configuration().configure(CONFIG_FILE_LOCATION).buildSessionFactory();
session = sessionFactory.getSessionFactory().openSession();


session.beginTransaction();
...
session.close();

1 Ответ

1 голос
/ 16 ноября 2010

Вот как выглядит сборщик мусора во время выполнения.Память быстра, но сборка мусора замедляет работу, поэтому нет никаких причин не использовать всю доступную память и избегать сбора мусора без необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...