Предотвращение начальной ошибки размера кучи памяти - PullRequest
20 голосов
/ 26 мая 2009

Я запускаю код 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, чтобы мы могли выполнить код?

Ответы [ 3 ]

17 голосов
/ 26 мая 2009

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

11 голосов
/ 26 мая 2009

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

4 голосов
/ 26 мая 2009

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

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

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