2013-07-26 10 views
0

У меня есть программа, которая очень насыщена памятью и думала, что для java jvm больше использовать максимальную память, используя -Xmx2048m. Но при запуске я получаю сообщение «Не могу зарезервировать достаточно места для кучи объекта».Назначение памяти java jvm

При попытке найти несколько значений и выяснилось, что моя самая большая ценность - -Xmx1560m, и она начинается. Но мне нравится назначать 2 ГБ. У меня 6 ГБ физической памяти и Taskmanager показывает 3400MB, доступный после того, как я начал java-процесс с -Xmx1560m.

Кто-нибудь знает, почему я не могу назначить 2 ГБ?

+0

Увеличьте свой файл подкачки: http://windows.microsoft.com/en-my/windows-vista/change-the-size-of-virtual-memory – Flot2011

ответ

1

32-битные окна ограничивают программы примерно 1,2 - 1,5 ГБ непрерывной памяти. Это ограничение применяется, даже если у вас 64-разрядная ОС, но вы эмулируете 32-разрядную среду для 32-разрядной JVM.

Способ избежать этого ограничения - использовать 64-разрядную ОС и 64-разрядную JVM, а предел намного выше, в зависимости от вкуса Windows, которую вы купили. Профессиональная версия ограничена 192 ГБ.

+0

Большое спасибо. Ты привел меня на правильный путь. Я помечаю ответ как полезный в ближайшее время. Но быстрый вопрос. На данный момент у меня стабильная среда разработки с 32-битным JVM и eclipse для программирования приложений для Android. Как вы думаете, можно ли параллельно установить бит jvm64 для выполнения моей неандроидной Java-программы параллельно и с использованием одного и того же затмения? (по конфигурации специальное приложение java, чтобы указать на 64-битный jvm)? –

+0

@ user1344545 Вы можете установить столько версий, сколько хотите, пока не закончите дисковое пространство. Вам действительно нужно последнее обновление каждой версии, которую вы, возможно, захотите запустить. AFAIK вы можете использовать 64-битную версию для разработки Android. –

Смежные вопросы