2010-09-22 2 views
3

Я пытаюсь проанализировать кучу кучи ~ 800 мб, для которого требуется большая куча, чем стандарт для моего затмения. однако, когда я иду в файл eclipse.ini и устанавливаю -Xmx2g (или -Xmx2048m), я получаю сообщение об ошибке «Не удалось создать виртуальную машину Java».Проблема с распределением памяти Eclipse

1) да, у меня достаточно памяти. 2) Я могу изменить его до точно -Xmx976m. 3) Я пробовал автономный анализатор MAT и работает с -Xmx1024m, а не байтом больше. 4) Нет, 1gb не достаточно, чтобы проанализировать эту кучу, я получаю Oom

Это ошибка затмения: alt text

Это ошибка MAT: alt text

(я думаю, что они то же самое, что это именно так, вы можете увидеть пример с MAT)

Мой текущий 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.0.v20100503 
-product 
org.eclipse.epp.package.java.product 
--launcher.defaultAction 
openFile 
--launcher.XXMaxPermSize 
256M 
-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
256m 
--launcher.defaultAction 
openFile 
-vmargs 
-Dosgi.requiredJavaVersion=1.5 
-Xms40m 
-Xmx384m 

Кто-нибудь это понимает?

спасибо!

f.

+0

пса .: '' -vmargs -Xmx1g'' в командной строке обыкновении работайте. – filippo

+0

Пробовали ли вы распределять память кучи в JVM через командную строку? Сколько вы могли выделить? (java -Xmx ) –

+0

Хм .. интересно .. Я создал фальшивое приложение для тестирования параметров jvm, и я обнаружил, что JVM фактически не будет заменяться окнами. Я отправлю ответ. – filippo

ответ

0

Я создал поддельное приложение для проверки параметров jvm, и я обнаружил, что JVM, похоже, не меняет местами в окнах, по крайней мере, не создает запуск. У меня 4 гигабайта бара, но это позволяет мне выделить оставшееся свободное пространство. Нечетный, как он работает по-разному для разных приложений: мое поддельное приложение позволило мне подняться до Xmx1380m, в то время как затмение только поднялось до Xmx1024m.

ошибка выглядит:

$ java -jar -Xmx1500m "C:\fakeapp.jar" 
Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

же самое, но -Xmx1380g и приложение пошло отлично.

Никогда не было этой проблемы в unix, куча начнется с любого размера, который вы скажете, даже если он идет прямо для обмена.

Для всех, у кого возникла эта проблема на окнах: сначала проверьте ctrl + shift + esc -> производительность -> физическая память; и установите Xmx примерно таким же значением, как показано в разделе «Доступно».

Было бы здорово, если бы кто-то мог сказать, как предотвратить JVM от проверки, действительно ли у вас достаточно свободной памяти перед запуском. 1.5g Я использую работал я обработки кучи дамп только 800mb, но если бы это было немного больше, я бы не куда бежать ...

веселит,

п ,

+0

a las на форуме затмения дал совет: http://www.eclipse.org/forums/index.php?t=msg&goto=628790&S=d56504573b2973729d9442f637c10dd9#msg_628790 – filippo

5

Эта проблема, которую вы видите, относится к окнам, которые я предполагаю?

У меня была та же проблема. Прочитав вашу проблему, я снова выкапывал. Я только что нашел решение моей проблемы. Если это то же самое, попробуйте. В вашем файле Eclipse или MemoryAnalyzer ini удалите параметр - from the Xmx. Мой ini-файл затем становится

-vmargs 
Xmx1536m 

и теперь работает как очарование с большей памятью. Благодаря замечанием Alex2308 в этой теме http://troyworks.com/blog/2008/06/08/eclipse-jvm-terminated-exit-code-1/comment-page-1/#comment-80


Мой предыдущее решение было получить реальный диск Linux. загрузиться в Linux, а затем я смог выделить 2g в MAT без проблем. (убедитесь, что вы получаете MAT для Linux).

Не лучшая работа вокруг, но я не мог найти никаких ссылок на форумах MAT, указывающих на ошибку.

+0

Привет, приятель, я пробовал это, но, хотя jvm начал, он не взял настройки памяти. Вы уверены, что это сработало для вас? в справке -> о -> сведения об установке -> конфигурации. он покажет вам фактическую конфигурацию. без черточки моя куча все еще была 64mb :( – filippo

+0

Да, это определенно сработало. Мне удалось открыть файлы, которые я не мог раньше, и подтвердил объем памяти с помощью visualVM. PS Это было автономным MAT Я использую – Sean

+0

О, это очень странно. это и для автономного мата. В последней версии есть панель внизу справа с статусом памяти, при этом мышь над ней сообщает подробности (мин, макс, знак), и я также подтвердил, что там ... это может не быть ошибка, но они наверняка могут сделать память confs. clearer :( – filippo

2

Похоже, вы находитесь на 32-битной виртуальной машине. Виртуальная виртуальная машина Java пытается зарезервировать все пространство памяти в одном блоке, а это означает, что в зависимости от местонахождения ваших системных библиотек DLL она может не получить столько памяти. Переключение на 64-разрядную виртуальную машину (которая, очевидно, требует 64-разрядной ЦП &), должна исправить это.

1

Вы изменили параметр среды Java Runtime Environment в панели управления Java? Добавив параметр Runtime e.g -Xmx3072m в столбец Runtime Parameter.

Может быть, вы можете проверить детали здесь ..

Increase JVM in Windows 7

Надеется, что это поможет решить вашу проблему ..

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