Ваш вопрос очень неясен:
- Запускаете ли вы приложение в новой JVM?
- Заданы ли параметры -Xmx / -Xms в программе запуска для ребенкаJVM?
Если на любой из этих вопросов вы ответили «нет», попробуйте сделать… оба.(В частности, если вы не установите по крайней мере -Xmx для дочерней JVM, вы получите размер кучи по умолчанию, который является относительно небольшим.)
Если ответ на оба эти вопроса будет «да»", тогда проблема в том, что вы работаете в пределах ограничений конфигурации вашего оборудования и / или операционной системы:
В типичной 32-битной Windows пользовательский процесс может адресовать только 2** 31 байт виртуальной памяти, и некоторые из них будут использоваться двоичными файлами JVM, собственными библиотеками и различными выделениями памяти без кучи.(Я полагаю, что в 32-битном Linux вы можете иметь до 2**31 + 2**30
).«Исправление» для этого заключается в использовании 64-битной ОС и 64-битной JVM.
Кроме того, JVM ограничена объемом памяти, который может запрашивать ресурсыПодсистема виртуальной памяти ОС.Обычно это ограничено суммой доступной оперативной памяти и размером файлов / разделов диска, используемых для подкачки.«Исправление» для этого заключается в увеличении размера файла / раздела подкачки.Добавление большего объема оперативной памяти, вероятно, также будет хорошей идеей.