java.lang.OutOfMemoryError: пространство кучи Java ("-Xmx1280M") - PullRequest
1 голос
/ 22 декабря 2011
java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space

Я получаю эту ошибку, мой системный ОЗУ составляет 3 ГБ, и я дал -Xmx1280M.Тем не менее, я получаю эту ошибку.На некоторых других машинах с 2 ГБ ОЗУ и параметром -Xmx1280M эта ошибка не возникает (та же операция).В чем может быть проблема?Я использую java VisualVM, чтобы отслеживать, какие объекты занимают память, но куча, которая генерируется в OOME, очень велика.Загрузка кучи занимает очень много времени, и «Вычисление оставшегося размера», кажется, никогда не заканчивается.

Что мне нужно сделать, чтобы восстановить OOME?

Ответы [ 3 ]

0 голосов
/ 22 декабря 2011

Завершение работы сервера, удаление всех кешей и перезагрузка.Когда проблема не устраняется, это должна быть другая конфигурация системы, базы данных или около того, и она может быть возвращена к неправильному кодированию.

0 голосов
/ 22 декабря 2011

Установите максимальный и минимальный размер кучи на один и тот же размер (-Xms1280m -Xmx1280m), чтобы jvm попытался получить всю сумму при запуске.Возможно, на одной машине недостаточно большого непрерывного фрагмента памяти.

Я видел, что средства проверки на вирусы и другое программное обеспечение не позволяют JVM находить непрерывные фрагменты, даже если имеется большое количество свободной памяти.1003 *

0 голосов
/ 22 декабря 2011

То же приложение, которое работает в 64-битной JVM, может потреблять вдвое больше памяти.

Ваш сценарий возможен, если на машине, где вы получаете OOME, установлена ​​64-битная JVM, и на машине, где у вас нетИсключение составляет 32-битная JVM.

Трудно ответить больше без вашего приложения в руках.

...