Подтвердить что ты не робот

Избегание ошибки начальной кучи памяти

Я запускаю код Java со следующей командой:

$ java -Xms4G -Xmx4G myjavacode

Объем оперативной памяти процессора составляет 6 ГБ.

Однако он всегда не выполняется, давая мне это сообщение об ошибке:

Invalid initial heap size: -Xms5G
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine

Есть ли способ настроить Java-вариант, чтобы мы могли выполнить код?

4b9b3361

Ответ 1

Вы превысили максимальный размер кучи своей JVM. Это зависит как от JVM, так и от ОС. В большинстве 32-разрядных систем максимальное значение будет 2 ГБ, независимо от доступной физической памяти.

Ответ 2

По умолчанию Java будет работать в 32-битном режиме. Не забудьте указать его -d64, чтобы поместить его в режим 64 бит. После того, как вы в 64-битном режиме, вам не составит труда выделить 6-мегабайтную JVM.

Ответ 3

Фактически максимальный объем памяти в 32-битных системах может варьироваться, составляя до 4 ГБ, но 2 ГБ является общим значением. Часто можно перенастроить ядро, чтобы увеличить его до 3 или 3,5 ГБ. Проблема, конечно же, в том, что у вас просто нет адресного пространства, чтобы отображать больше памяти. Вы пробовали 64-битную машину?

Кроме того, не забудьте установить свой ulimit выше, прежде чем делать это.