Вот моя ситуация: у меня есть задача, требующая большого количества памяти. У меня недостаточно бара, и независимо от того, что я пробовал (Jrockit с/3gb-переключателем и т.д.), Я не могу предоставить JVM достаточное количество бара, и операция прекращается с исключением, говоря мне, что мне нужно больше места для кучи.
Можно ли каким-либо образом заставить JVM использовать механизм обмена ОС, чтобы он не исчерпал память? Это 32-разрядная версия Windows xp
Это займет много времени, но мне все равно, мне просто нужно, чтобы эта операция была завершена.
У меня закончились опции, и я не могу контролировать ни одну из переменных здесь.
Это требуемое редактирование, так как я получаю тот же ответ от почти всех:) Это не мой код. Кто-то написал инструмент, который читает xml файл в репозиторий. Инструмент использует EMF и загружает всю модель сразу. Все, что я могу сделать, это передать XML файл. В случае нативного кода, работающего под Windows или Linux и т.д., ОС предоставляет ему память, используя пространство виртуальной памяти/подкачки, и приложение не знает об этом. Мне было интересно, можно ли сделать то же самое с JVM. В Windows 32 бит, -Xmx может доходить до определенной суммы, но этого недостаточно. Выйти и покупать новое оборудование для меня сейчас не вариант. Поэтому мне было интересно, возможно ли, что JVM работает как собственные процессы. Медленно, но все еще работает. Видимо, это невозможно, и мне не повезло. Мне просто нужно знать, действительно ли у меня нет вариантов.