2012-06-20 2 views
0

у меня есть:Как увеличить размер кучи для Eclipse?

  1. 64bit Win 7
  2. 64bit JRockit 1,6
  3. 64bit Затмение

eclipse.ini:

-startup 
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 
-showsplash 
org.eclipse.platform 
--launcher.defaultAction 
openFile 
--launcher.XXMaxPermSize 
512m 
-vmargs 
-Xms512m 
-Xmx1024m 
-Xmn256m 
-XX:MaxPermSize=512m 
-XX:GCTimeRatio=2 
-XX:ParallelGCThreads=8 
-XX:+UseParNewGC 
-XX:MaxGCPauseMillis=2000 
-XX:+DisableExplicitGC 
-Dsun.lang.ClassLoader.allowArraySyntax=true 
-Dweblogic.home=D:\Oracle\Middleware10.3.4\wlserver_10.3 
-Dharvester.home=D:\Oracle\Middleware10.3.4\Oracle_OSB1\harvester 
-Dosb.home=D:\Oracle\Middleware10.3.4\Oracle_OSB1 
-Dosgi.bundlefile.limit=750 
-Dosgi.nl=en_US 

Я хочу увеличить размер кучи, но когда я увеличиваю -Xmx1024m до -Xmx2048m

он говорит:

Не удалось создать виртуальную машину Java.

Тогда я снова ввел -vm аргумент моих eclipse.ini, как

-vm 
D:\Java\jrockit-jdk1.6.0_26-R28.1.4-4.0.1\jre\bin\jrockit\jvm.dll 

(до -vmargs) он говорит:

Не удалось загрузить JNI разделяемую библиотеку.

Что делать? Как увеличить размер кучи для Eclipse?

+0

Я бы использовал 32-битное Eclipse. – Kai

ответ

3

В отличие от вашего утверждения у вас есть 32-разрядная версия Eclipse. Я могу сказать по ссылке org.eclipse.equinox.launcher в файле eclipse.ini. 64-битное затмение будет иметь этот файл с именем «... win32.x86_64 ...» вместо «win32.x86 ...».

Поскольку Eclipse имеет собственные компоненты, вам необходимо использовать 32-разрядную JVM с 32-разрядным Eclipse. Вы видите проблему «Не удалось загрузить общую библиотеку JNI» при попытке принудительного использования 64-разрядной JVM, поскольку собственные компоненты Eclipse в вашей установке несовместимы с 64-разрядной JVM.

С точки зрения возможности увеличения кучи в вашей установке ... Вы вряд ли сможете увеличить кучу до 2048 м. При запуске JVM пытается зарезервировать смежный блок памяти на основе максимального размера кучи. 32-разрядное адресное пространство составляет 4G, но оно разбивается на различные системные DLL, закрепленные в памяти в разных местах. Максимальная непрерывная память будет варьироваться от системы к системе, но очень необычно находить смежный блок 2048 м.

Я не на 100% уверен в этом, но я слышал, что Jrockit не имеет непрерывного требования к памяти. Если это так, вы можете решить свою проблему, переключившись на Jrockit, как вы пытаетесь, но вам нужно установить 32-разрядную версию Jrockit.

Конечно, лучшим решением было бы перейти на 64-разрядную версию Eclipse. Похоже, что ваша установка Eclipse появилась у установщика OSB. Они доступны только в 32-битных вариантах, но я считаю, что установщик OSB поддерживает установку плагинов OSB в существующую установку Eclipse, которая содержит Oracle Enterprise Pack для Eclipse (OEPE). OEPE имеет готовые 64-разрядные наборы Eclipse, но вам нужно определить, какая версия Eclipse и OEPE требует плагинов OSB (это будет одна конкретная версия).

Удачи.

UPDATE: Просто вспомнил что-то еще ... Иногда легче работать с более высокими параметрами XMX, если вы используете javaw.exe вместо jvm.dll, как управление памятью отличается между этими двумя точками входа. Чтобы попробовать это, найдите путь к вашему 32-битовому JVM javaw.exe и укажите его с помощью переключателя -vm так же, как вы пытаетесь указать альтернативный jvm.dll в своем вопросе.

+1

Спасибо, у меня было «_64», но почему-то этого не было в моей ini. Я снова распакуюсь и теперь работает с 3 г кучи. Кроме того, мне пришлось указывать 'jvm.dll', поскольку ссылка на' javaw.exe' не работала, он продолжал запрашивать библиотеку JNI. –