Почему происходит сбой Eclipse с Xmx, XX: MaxPermSize выше определенных значений?

StackOverflow https://stackoverflow.com/questions/1804913

  •  05-07-2019
  •  | 
  •  

Вопрос

Запускаю Eclipse 3.5.1, JDK 1.6.0_17 на 32-битном WinXP SP3 с 3,5 гигабайтами оперативной памяти.
Я осведомлен об известном Лучшие практики Eclipse, все еще пытаюсь разобраться с eclipse.ini.

Это приведет к запуску: -Xmx588m и этого не будет: -Xmx589m.
То же самое с -XX:MaxPermSize.Все, что выше -XX:MaxPermSize=140m не запускается.
Экран смерти подобен тому, что это (взято из здесь).

Есть какие-нибудь идеи о том, почему это может происходить?

Это было полезно?

Решение

См. эту ошибку затмения .

Общая проблема заключается в том, что для этого jvm требуется непрерывный блок памяти. На окнах процесс получит 2 гигабайта, другие загружаемые библиотеки размещаются в разных областях памяти. Если библиотека оказывается посередине, она в два раза меньше используемого вами размера.

Средство запуска Eclipse будет загружать некоторые системные библиотеки DLL для работы с графикой, и, в частности, user32.dll может привести к загрузке сторонних библиотек в зависимости от того, что установлено на вашем компьютере (видно здесь ).

Для достижения более высоких пределов памяти вы можете принудительно разветвлять jvm в отдельный процесс от средства запуска eclipse. Процесс jvm не будет загружать эти дополнительные библиотеки до тех пор, пока vm не инициализирует свою память. Сделайте это с помощью аргумента -vm, указывающего на javaw.exe:

eclipse -vm C:\jdk\jre\bin\javaw.exe

Другие советы

Смотрите также эта ошибка 203325 для получения рекомендаций о том, как отслеживать использование вашей памяти с помощью таких инструментов, как:

  • JConsole
  • Инструмент мониторинга памяти (eclipse tool)

Примечание:как прокомментировал здесь:

Если Вы не укажете максимальный лимит памяти, то это остается на усмотрение диспетчера памяти операционной системы.

Тот Самый -Xmx <size> полезен для программирования небольших устройств, таких как J2ME.
Если вы программируете для небольшого устройства с ограниченным объемом памяти, вы можете использовать -Xmx Свойство JVM для эмуляции небольшого устройства, даже если вы используете ПК.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top