Программа выдает OutOfMemoryError: пространство кучи Java при запуске в Mac, но не в Ubuntu - PullRequest
1 голос
/ 30 января 2012

Это расстраивает.Я пытаюсь запустить программу, которая загружает в память изображение 4000x3000.Он отлично работает в Ubuntu, но не в Mac, выбрасывая OutOfMemoryError: пространство кучи Java.Вот мой eclipse.ini в Ubuntu

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.200.v20090520
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins

Что касается Mac

-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
-vmargs
-Xms128m
-Xmx512m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts

Обратите внимание, что я пытался увеличить память PermSize Xmx и Xmx Mac примерно до 1024 м, но Mac по-прежнему выбрасываетOutOfMemoryErrors.Я только попытался сделать их похожими, потому что, ну, в Ubuntu он работает нормально.

Есть предложения?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 30 января 2012

Это ваши настройки для eclipse, а не для вашей программы (я предполагаю, что вы не создаете его как компонент Eclipse). Ваша программа будет работать с настройками по умолчанию, если вы не укажете иначе в Запустить конфигурацию .

По умолчанию java начинается с зависимости от множества факторов, таких как архитектура, ОС и доступная оперативная память. Поэтому вполне возможно, что это начнется с более низкого предела памяти на вашем Mac.

Чтобы исправить это, установите одинаковые значения Xmx в обеих системах (также убедитесь, что они имеют одинаковую архитектуру, 64-разрядным приложениям может потребоваться больше памяти для того же).

1 голос
/ 30 января 2012

Во-первых, ваша ошибка связана с пространством кучи, поэтому изменение пространства Перми не повлияет на это.Во-вторых, как отметил Джоэри, файл eclipse.ini влияет на работу самого Eclipse, а не на программы, которые вы пишете и запускаете из Eclipse.

В конфигурации запуска перейдите на вкладку «Аргументы» и введите * 1004.* аргумент в поле с пометкой Аргументы VM .

Если вы точно знаете, что всегда хотите, чтобы все ваши конфигурации запуска выполнялись с определенными аргументами пространства кучи, вы можете назначить их JRE.Откройте «Настройки Eclipse» и найдите Java> Установленные JRE .Оттуда выберите JRE, с которым вы хотите работать, нажмите кнопку Изменить , и там вы найдете поле Аргументы Vm по умолчанию .Если вы установите -Xmx там (или любые другие аргументы JVM), они будут влиять на любую конфигурацию запуска, которая использует эту JRE.

0 голосов
/ 30 января 2012

Увеличить значение параметра -Xmx

...