Почему Eclipse вылетает с Xmx, XX: MaxPermSize выше определенных значений? - PullRequest
1 голос
/ 26 ноября 2009

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

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

Есть идеи, почему это может происходить?

Ответы [ 2 ]

4 голосов
/ 26 ноября 2009

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

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

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

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

eclipse -vm C:\jdk\jre\bin\javaw.exe
1 голос
/ 27 ноября 2009

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

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

Примечание: как прокомментировал :

Если Вы не объявляете максимальный лимит памяти, то он остается за менеджером памяти ОС.

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

...